我的代码是这样的。我正在读取一个文件,将用户输入的单词与文件中的数据进行比较,然后想要从文件中打印下两个单词。我怎么能这样做?
#include <stdio.h>
#include <string.h>
int main()
{
//Open the file for reading
FILE *in = fopen("data.txt", "r");
char str[]="file1.txt";
//fgets buffer
char buffer[100];
//Pieces of string tokenized
char * stringPiece;
//int for comparing strings
int compare=2;
//While loop. Getting lines from file
while ( fgets(buffer, sizeof(buffer), in) != NULL ){
fgets(buffer, 100, in);
// printf("%s\n", buffer);
stringPiece = strtok (buffer,",");
while (stringPiece != NULL){
printf("%s\n",stringPiece);
compare=strcmp(stringPiece,str);
if (compare==0){printf("HELP");}
//printf("%s\n",stringPiece);
stringPiece = strtok (NULL, " ");
}
}
//Close file
fclose(in);
return 0;
}
我可以在文件中找到与用户输入的相同但无法从文件中打印下两个单词的单词。文件名是data.txt。
格式化的代码清晰易懂(主要使用vim
函数的开括号上的=%
和main()
。
#include <stdio.h>
#include <string.h>
int main(void)
{
//Open the file for reading
FILE *in = fopen("data.txt", "r");
char str[]="file1.txt";
//fgets buffer
char buffer[100];
//Pieces of string tokenized
char * stringPiece;
//int for comparing strings
int compare=2;
//While loop. Getting lines from file
while ( fgets(buffer, sizeof(buffer), in) != NULL ){
fgets(buffer, 100, in);
// printf("%s\n", buffer);
stringPiece = strtok (buffer,",");
while (stringPiece != NULL){
printf("%s\n",stringPiece);
compare=strcmp(stringPiece,str);
if (compare==0){printf("HELP");}
//printf("%s\n",stringPiece);
stringPiece = strtok (NULL, " ");
}
}
//Close file
fclose(in);
return 0;
}
答案 0 :(得分:0)
找到单词的样本和接下来的两个单词得到
#include <stdio.h>
#include <string.h>
int main() {
char userInputWord[]="file1.txt";
char readFromFileData[]="c:,file1.txt,date,size";
char *tokenPtr,*nextFirstWord,*nextSecondWord;
tokenPtr=strtok(readFromFileData, ",");
for(;tokenPtr != NULL;tokenPtr=strtok(NULL, ",")){
if(0!=strcmp(tokenPtr, userInputWord))
continue;//skip word
//find it!
printf("%s\n",tokenPtr);
nextFirstWord = strtok(NULL, ",");
nextSecondWord = strtok(NULL, ",");
if(nextFirstWord)
printf("first word is \"%s\"\n", nextFirstWord);
else
fprintf(stderr,"first word is nothing!\n");
if(nextSecondWord)
printf("second word is \"%s\"\n", nextSecondWord);
else
fprintf(stderr,"second word is nothing!\n");
}
return 0;
}