【发布时间】:2022-01-18 04:20:41
【问题描述】:
提示我编码的内容:
使用
getchar()函数提示用户输入他/她的名字,然后在屏幕上打印输入的名字。
我编码的内容:
#include <stdio.h>
#include <stdlib.h>
int main() {
int c;
int i;
char arr[20]={0};
c = getchar();
i = 0;
for(i;i<20;i++)
{
arr[i]=c;
c=getchar();
}
for (int j=0;j<20;j++)
{
printf("%s",arr[j]);
}
}
我的结果根本无法正常工作,并且存在各种类型的问题。例如,如果用户已经输入了全名,我不知道如何停止循环。相反,我必须一直按 Enter 直到 EOF。另一个问题是名称不再打印在屏幕上。我相信我的想法的基础是错误的代码。谁能指出我正确的方向?
【问题讨论】:
-
for(i;i<20;i++)当然它会一直读下去,因为你无条件地尝试读 20 个字符。如果您确实想在该输入上停止,请检查换行符。 -
@kaylum 你介意详细说明一下吗?我想在 for 循环中写“if(c=='\n') {break;}”,但是没有成功。
-
while( (c = getchar()) != EOF && c != '\n' && i < 20 ) -
@WilliamPursell 这是我得到的结果“(null)(null)(null)(null)(null)(null)(null)(null)...... 。”
-
printf("%s",arr[j]);->printf("%c",arr[j]);