我想获得一个全名,包括空格字符的字符串。我知道我不能仅将scanf与“%s”等一起使用,但是fgets,gets函数和带有scanf的%[^ \ n]%* c方法也无法正常工作。
我已经尝试使用scanf(“%[^ \ n]%* c”,&name),fgets(name,LENGHT,stdin)和gets(name)方法,但是它们无法正常工作。我的程序不会从此代码中获取任何输入,只是在打印问题后忽略这些功能。
void writeFile()
{
char i;
char name[LENGHT];
char surname[LENGHT];
int age;
char subject[LENGHT];
time_t now;
time(&now);
records = fopen("./RCRDS/records.rcd","r");
if(records == NULL)
{
printf("\nRecord file doesn't exist!\n");
}
else
{
records = fopen("./RCRDS/records.rcd","a");
printf("\nName : ");
scanf("%s",&name);
fprintf(records,"\nName : %s",name);
printf("\nSurname : ");
scanf("%s",&surname);
我想输入一个包含名称中包含空格键的字符串的输入。
示例:
名称:John Forbes(2个带空格的名字)
答案 0 :(得分:0)
您可以使用:scanf("%20[^\n]",name);
20表示输入字符串[^ \ n]的大小不会接收换行符