我正在用c写一个带有名字和数字文件的程序。用户输入一个数字,然后打印出旁边的名称。该文件看起来像这样......
154 Sam
245 Jane
345 Joe
我不确定如何在匹配来自用户的输入后仅从文件中打印某些单词,但我知道当我使用fgets和fscanf时它会打印整个文件
到目前为止我已经
了FILE *pf;
pf = fopen("C:\\Sample.text", "a+");
char str[200];
char input2[10];
printf("\nPlease enter a number:");
scanf("%s", &input2);`
while(!feof(pf))
{
fscanf(pf,"%s/n",str);
if (strcmp(str,input2)==0)
{
printf("The First name is %s\n",fgets(str,10,pf));
}
}
答案 0 :(得分:0)
有很多方法可以将一行划分为多个部分,以便您可以单独处理它们,但由于您已经在使用scanf
和fscanf
,因此您可能需要考虑{{1} }。假设您已从文件中读取整行到sscanf
,该行包含数字和名称:
str
会将该行的第一个单词读入sscanf(str, "%s %s", number_str, name_str);
,将该行的第二个单词读入number_str
。