1 /****************************************************************************** 2 * removeLineEndSpace 3 * 声明: 4 * 该程序是之前alignBySpace的逆向补充程序,去掉行尾的空格。 5 * 6 * 2015-8-11 阵雨 深圳 南山平山村 曾剑锋 7 *****************************************************************************/ 8 #include <stdio.h> 9 #include <string.h> 10 #include <stdlib.h> 11 12 int main ( int argc, char ** argv ) { 13 14 int ret = 0; 15 char *tempFile = "generateFile.txt"; 16 char *readBuffer = NULL; 17 size_t bufferSize = 512; 18 int readBufferIndex = 0; 19 20 if ( argc != 2 ) { 21 printf ( "USAGE: " ); 22 printf ( " removeLineEndSpace <file>. " ); 23 return -1; 24 } 25 26 FILE *readfile = fopen ( argv[1], "r" ); // only read 27 FILE *writefile = fopen ( tempFile, "w" ); // only write 28 29 /** 30 * man datasheet: 31 * If *lineptr is NULL, then getline() will allocate a buffer for storing the line, 32 * which should be freed by the user program. (In this case, the value in *n is ignored.) 33 */ 34 while ( ( ret = getline( &readBuffer, &bufferSize, readfile ) ) != -1 ) { 35 36 readBufferIndex = ret - 1; // index for real position 37 38 while ( ( readBuffer [ readBufferIndex ] == ' ' ) || // del ' ', ' ', ' ' character 39 ( readBuffer [ readBufferIndex ] == ' ' ) || ( readBuffer [ readBufferIndex ] == ' ' ) ) 40 readBuffer [ readBufferIndex-- ] = '