私のコードはこれです。私はファイルを読んでいて、ファイル内のデータからユーザーが入力した単語を比較してから、ファイルから次の2つの単語を印刷したいと思っています。どうやってやるの?
#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;
}
ユーザーが入力したものと同じファイル内の単語を見つけることができますが、ファイルから次の2つの単語を印刷できません。ファイル名は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;
}