#include<stdio.h> main() { char ch[6]={0}; scanf("%s\n",&ch); printf("%s\n",ch); }

这是我编译的一个小程序,目的是弄清楚char的用法,但是我在运行程序的时候输入了 6个英文字母是,点回车键 竟然是换行,而不是结束scanf函数,这是怎那么回事啊,球高手指教,谢谢

因为你写输入的是字符串,但你实际编写的是输入6个字符。如果你想输入字符串,应该改为指针:
char *ch;
scanf("%s", &ch);

如果你想输入6个字符,应该改为:
for (int i = 0; i < 6; ++i) {
sancf("%c", &ch[i]);
}

不保证正确,我的C和C++有关字符的都有点混乱
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-25
第2个回答  2012-10-25
#include<stdio.h>
main()
{
char ch[6]={0};
scanf("%s\n",&ch);//把'\n'去掉
printf("%s\n",ch);
}

#include<stdio.h> main() { char ch[6]={0}; scanf("%s\\n",&ch...
char *ch;scanf("%s", &ch);如果你想输入6个字符,应该改为:for (int i = 0; i < 6; ++i) { sancf("%c", &ch[i]);} 不保证正确,我的C和C++有关字符的都有点混乱

#include<stdio.h> #include<time.h> #include<string.h> #includ...
include<stdio.h> include<time.h> include<string.h> include<stdlib.h> int main(){ int ch;char ad[6];char tb[7];char adr[6]="admin";char tbr[7]="TurboC";printf("1---GUEST\\n2---ADMIN\\n");scanf("%d",&ch);getchar();switch(ch){ case 1:printf("1---Login\\n2-...

#include <stdio.h> main( ) { char c; scanf(
include <stdio.h> main( ){ char c;scanf("%3c",&c);\/\/输入c字符,但之前要补两位空格 %3c表示这个字符要占三个字符位 printf("c=%c\\n",c)\/\/输出c=“你输入的c值,%c代表输出为字符,如你输入65,则输出不是65,而是对应的ASCII表中的字符A”} ...

#include<stdio.h> void main() { char a='本金',b='年数',c='年利率...
main() {int x ;printf(“%d\\n”,(x=4*5,x*2,x+20));}A)20B)40C)60D)809.执行以下程序后的输出结果是( )。#include "stdio.h"void main(){int i = 0, j = 0, a = 6;if ((++i0)||(++j0)) a ++;printf("i=%d, j=%d, a=%d\\n", i, j, a);}A)i=0, j=0, a=...

#include <stdio.h> int main( ) { float n=0.0,t=1.0; char ch; p...
循环没有终止 include <stdio.h> int main( ){ char ch[100];printf("请输入一句英文:");scanf("%s", &ch);printf("%s\\r\\n", ch);return 0;}

#include<stdio.h> int main() { char ch[]={0}; char c; scanf...
char ch[]={0};这里写法其实是错的!应该是char ch[10];[]里的数需要一个值确定数组长度

#include <stdio.h>
基本的C语言的输入输出 函数都在stdio.h里面,没有他用 printf,scanf,getchar,putchar,gets,puts之类的输入输出函数会报错,就像那个 math.h 包含了 许多数学函数,fabs(绝对值函数)pow(幂指函数),没有math.h他们就不能用

#include<stdio.h> main() { char c; printf("Please input the first...
在第二个getchar()函数前加上:fflush(stdin);清空输入缓冲区,否则你读取的第一个字符为你输入的第一个字符,此时输入缓冲区的下一个字符是回车符,第二句输入第二个字符就是在接收这个回车符,当然也就不等你输入就结束了。清空之后就能正常输入了。

#include <stdio.h> void main() {char c; scanf("%3c",&c); print...
因为char c表示一个字符,你输入ABC只能接受到第一个字符,若要全部接都需要这样写 char temp[10];scanf("%3s",temp);希望可以采纳为答案

#include<stdio.h> void main() { char * str; scanf("%s",str); pr...
这个没有错的,我编译都通过,并且可以运行的!如下图:

相似回答
大家正在搜