#include<Stdio.h>
#include<conio.h>
void main()
{
char a[100];
clrscr();
printf("enter a paragraph\n");
scanf("%s",a);
printf("%s",a);
getch();
}
输出: 输入一个段落 我叫vasanth 我
如何使用scanf函数读取整行“我的名字是vasanth”?
答案 0 :(得分:5)
使用scanf
功能:
scanf("%99[^\n]", a);
其中%[^\n]
是一个字符集说明符,允许除换行符之外的所有字符,%99[^\n]
将匹配限制为最多99个字符(因为a
有多个字符的空间加上null终止符)。
或者,您可以使用
fgets(a, 100, stdin);
这可以说是更常见的,但要注意它最后会保留换行符。
答案 1 :(得分:1)
这个问题已被多次询问,答案是
使用
fgets(a,sizeof(a),stdin);
size_t n = strlen(a);
if(n>0 && a[n-1] == '\n')
a[n-1] = '\0';
如果您只想使用scanf(),则需要执行
scanf("%99[^\n]",a);
其中[^ \ n]告诉read直到遇到换行符,99确保没有缓冲区溢出。与fgets()
scanf()
是阅读字符串的不错选择
答案 2 :(得分:0)
您可以使用 fgets ,如下所示
fgets (a, 100, stdin);
答案 3 :(得分:-1)
您可以使用fgets( )
功能阅读一行文字。
fgets(str , 100 , stdin);
如果你的字符串很小,你也可以使用gets()函数,因为这个函数没有缓冲区溢出保护。
gets(str)
U也可以使用scanf
执行此操作,正如其他人所提到的那样。