在c中打印和扫描文件

时间:2013-11-30 02:30:26

标签: c file fgets scanf

我正在用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));
    }
}

1 个答案:

答案 0 :(得分:0)

有很多方法可以将一行划分为多个部分,以便您可以单独处理它们,但由于您已经在使用scanffscanf,因此您可能需要考虑{{1} }。假设您已从文件中读取整行到sscanf,该行包含数字和名称:

str

会将该行的第一个单词读入sscanf(str, "%s %s", number_str, name_str); ,将该行的第二个单词读入number_str