【发布时间】:2017-10-20 09:55:33
【问题描述】:
我想在二进制文件的一行上写三个名字。这个怎么做?例如: 伊万·彼得罗夫 彼得罗夫。 如果我写
char name[50];
int sizeName;
FILE*fp;
if((fp=fopen("clients.bin","ab+"))==NULL)
{
printf("Error opening the file\n");
exit(1);
}
printf("Enter client's name: \n");
scanf("%s",name);
sizeName=strlen(name);
fwrite(&sizeName,sizeof(int),1,fp);
fwrite(name,sizeName,1,fp);
这样我只能在文件中写 Ivan,但我想要所有 3 个字?怎么办@
【问题讨论】:
-
scanf()接受输入,直到遇到空格。对于带空格的字符串,使用fgets()读取。 -
使用
fgets(name, sizeof name, stdin);或scanf("%49[^\n]%*c", name);
标签: c string file io whitespace