テキストファイルの特定文字列がある行を残す
BUF が小さいのは,先頭の6文字目あたりに目的の文字列があるから.その行自体も文字数が少ないから,20くらいでいいな.
#include <stdio.h> #include <stdlib.h> #include <string.h> #define BUF 128 int main ( int argc, char **argv ) { if ( argc < 4 ) return 0; char *inFilename = argv[1]; char *outFilename = argv[2]; char *word = argv[3]; FILE *inFile; fopen_s ( &inFile, inFilename, "r" ); FILE *outFile; fopen_s ( &outFile, outFilename, "w" ); if ( inFile == NULL || outFile == NULL ) return 0; char line[BUF]; for ( int counter = 0; fgets( line, BUF-1, inFile) != NULL; counter++ ) { if ( strstr( line, word ) != NULL ) { fputs( line, outFile ); } } fclose( inFile ); fclose( outFile ); return 0; }