C语言sCAnF输入字符串

//例子 : #include<stdio.h> int main (void) { float a; printf("请输入一个数"); scanf_s("%f",a); printf("\n输入的数值是:%f",a);

printf("%c,%d\n",c1,c1); 像这一个函数你就没必要输出两遍c1,还有下边的c2输出一边就行了.程序没有错误,就是显得有点乱,你去掉试试可能就行了.

你的意思是输入多余的字符吧?1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:2、char ch; scanf("%c", &ch);//假如你不小心输入了多个字符//解决方法如下 while ('\n' != getchar()) {continue;}//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);

你可以采用gets();函数输入,空格也算在内的.输入对应的是puts();要使用这个函数头文件里面只需添加#include .如果对你有用,望采纳.

?1234567891011121314151617#include<stdio.h> void main() { char str[100]; char* p=NULL; printf("请输入一段英文文章:\n"); gets(str); // scanf("%s",str); p=str; for(;*p!='\0';p++) { if(*p=='H') { printf("%s\n",p); } } }在这段简单的程序中,会

第一个scanf读入字符串后,换行符留在输入缓冲区中,被第二个scanf读入(scanf的格式字符串为%c时会读取一切字符包括换行和回车),因而造成错误.可在第一个scanf结束后加入一行fflush(stdin)清空输入缓冲区.

因为字符串变量名在 scanf 语句里 表示指针 (地址) 例如:char s[80]; scanf("%s",s); --- 这里的s 已是地址.当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址.

scanf以空格,回车作为结束标志,而gets只以回车作为结束标志

你要知道scanf的输入后面的的地址,如果你输入的时候本身符号就表示地址的时候那不要&,否则就要& 举个例子:int a; char ch; scanf("%d",&a); scanf("%c",&ch); 这里的a是一个整型数,不是地址符号就要& char str[10]; scanf("%s",str); 此时str是地址符号,表示字符串的首地址,因此不需要& 还有什么不明白的继续交流~~~

scanf函数只能输入不带空格的字符串,因为它读入到空格时就结束了.而gets函数可以读入带空格的字符串.例如:#include <stdio.h> int main() { char s[100]; scanf("%s",s); printf("%s\n",s); gets(s); printf("%s\n",s); return 0; } 两次输入,都输入字符串"ab cd",输出却不一样:第一次输出ab,因为scanf遇到空格时停止读入,第二次输出ab cd,因为gets函数是以换行符为结束标志的.

相关文档

scanf函数输入字符串
c语言scanf怎么输 号
c语言string用法
scanf只能输入一个字符吗
c语言scanf输入多个值
scanf的输入格式例题
c语言scanf字符串
c语言字符串输入输出
c语言scanf输入二维数组
scanf读取字符串
c语言scanf用法举例
如何用scanf输入字母
scanf输入字符串 空格
scanf怎么输入运算符号
输入字符串的函数
c语言输出字符串数组
c语言输入带空格的字符串
c语言输出字符串长度
电脑版