[英]How to read a line using scanf() in C?
我需要使用 scanf() 读取一行作为输入,然后使用 printf() 打印它。 我尝试使用scanf("%[^\\n]%*c",sen);
和
printf("%[^\n]%*c", sen);
这是我得到的输出:
%[^
]
谁能指出我的错误?
以下代码将接受三个输入,一个字符、一个字符串和一行。 之后,只需打印三个数据。 但是我在使用scanf()
阅读该行时遇到了麻烦。
{
char ch,s[10],sen[25];
scanf("%c",&ch);
scanf("%s",s);
scanf("\n");
scanf("%[^\n]%*c",sen);
printf("%c\n",ch);
printf("%s\n",s);
printf("%[^\n]%*c", sen);
}
预期输出将如下所示:
C
Language
Welcome To C!!
我得到了什么:
C
Language
%[^
]
继续逐个输入输入,直到找到换行符('\\n')。
#include <iostream>
using namespace std;
int main() {
char s[100],c;
int len=0;
while(scanf("%c", &c)==1) { //==1 is to ensure you have not reached end of file(EOF)
if(c== '\n')
break;
s[len++]=c;
}
s[len] = '\0'; //to mark end of the string.
printf("%s\n", s);
return 0;
}
当使用 printf() 显示用户的输入时,您使用普通的“%s”符号,“%[^\\n]%*c”仅与 scanf() 一起使用,因为此函数仅在第一个之前接受输入空间。
所以当使用 printf() 显示时,你的代码应该是这样的:
printf("%s", sen);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.