有几个错误 第一,这里有优先级的问题,需要加小括号 while((ch=getchar())!='\n') 第二,在while循环里,在wile循环开始,需要判断i是否大于20,否则的话,会造成对内存的非法访问 { if( i>20) break; str[i]=ch; i++; } 第三,如果需要已字符串形式输出,则最好在开始初始化数组 str[i]={0},这时在while循环里,需要判断是否大于19,否则的话,字符串输出的话,多输出一些字符。
int j,i=0,n=0; char ch,str[20]; while(ch=getchar()!='\n') { str[i]=ch; i++; } for(j=0;j<5;j++) printf("%c",str[j]); 这是源代码,想输出str,可是一直没法输出。感觉对着,不明白怎么回事?求解答一下。还有那个字符流读取时怎么回事?
字符输出用: int j,i=0,n=0; char ch,str[20] = {0}; while((ch=getchar())!='\n')//注意这里的括号,优先级顺序会错!=优先级比=高,ch变成条件判断的结果0或1 { str[i]=ch; i++; } str[i] = '\0'; printf("%s\n",str);//输入字符串 另外这里的str[20]要注意下,别输入长度超过上限。
int j,i=0,n=0; char ch,str[20] = {0}; while((ch=getchar())!='\n')//注意这里的括号,优先级顺序会错!=优先级比=高,ch变成条件判断的结果0或1 { str[i]=ch; i++; } str[i] = '\0'; printf("%s\n",str);//输入字符串
69,371
社区成员
243,080
社区内容
加载中
试试用AI创作助手写篇文章吧