gpt4 book ai didi

c - 使用文件 io 打印整行

转载 作者:行者123 更新时间:2023-11-30 15:02:34 26 4
gpt4 key购买 nike

这是我的“电话簿”程序的一部分。

void viewall(){
int n, checking = 0;
char name[50];

fp = fopen("Phonebook.txt","r");
printf ("\n\n");

fscanf (fp, "%s %d", name, &n);
while (!feof(fp)){
printf (" %s +880%d\n", name, n);
fscanf (fp, "%s %d", name, &n);
++checking;
}

if (checking == 0){
printf (" Contact List is Empty. No Contacts to Show...");
}

printf ("\n\n");
fclose(fp);

menu();
}

这部分显示列表中的所有联系人。但如果任何联系人姓名有两个部分,它们就会分开。例如:我输入 Anik Shahriar 作为姓名,然后输入我的电话号码。我查看了我的文件,这些数据就在那里。

Anik Shahriar 01*******93

但是当我想显示所有联系人时。打印出来是这样的:

Anik 0
Shahriar 01*******93

如何让程序打印整行?

最佳答案

此行为是由线路引起的

fscanf (fp, "%s %d", name, &n);

格式标识符 %s 扫描单个字符串。任何空白字符都会结束扫描。

http://www.cplusplus.com/reference/cstdio/scanf/

%s
String of characters
Any number of non-whitespace characters, stopping at the first whitespace character found. A terminating null character is automatically added at the end of the stored sequence.

我建议使用 ca CSV 文件并使用类似的格式字符串。

scanf("%[^,] %d", name, number)

不要忘记测试 scanf 结果值。

关于c - 使用文件 io 打印整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40999353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com