【发布时间】:2016-07-18 15:21:21
【问题描述】:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int intvar=0; //variable to store integer input
double decimalvar = 0; //variable to store double input
char string[30]; //arrary to store string
scanf("%d",&intvar); //scan for int input
scanf("%f",&decimalvar); //scan for double input
scanf("%[^\n]",string); //scan for a line input
printf("%d\n",intvar); //print int var
printf("%.1f\n",decimalvar);//print double var
printf("%s",string);//print string
return 0;
}
程序运行成功,但只需要两次输入。输入第二个输入后,跳过第三个scanf语句,执行printf语句。为什么会这样?
【问题讨论】:
-
1)
scanf("%[^\n]",string);-->scanf(" %[^\n]",string);(加空格) 2) 不要使用scanf()使用fgets()然后sscanf()。