2

我想用 C 或 C++ 编写一个程序,它将一个字符串作为一个字符一个字符的输入,并在按下回车键时给出输出。我必须逐个输入字符

    while (1)
    {
            scanf("%c",&a); //cin>>a;
            if(a=='\n')
            break;
            //do operation on the character
    }
    //give output

像这样的事情,但我做不到。

4

4 回答 4

1

IIUC,您正在寻找getchar函数:

while (1)
{
        char c = (char)getchar();
        if(c=='\n')
        break;
        //do operation on the character
}
//give output
于 2013-09-29T14:28:58.303 回答
0

理想情况下,您的代码应该可以正常工作。由于 scanf 读取一个字符并存储它。你得到的错误/输出是什么?

也尝试比较 (a==10) 10 是 '\n' 的 ascii 值

于 2013-09-29T14:39:37.110 回答
0

尝试这个:

int main()
{
    char str[100],c;
    int i =0;
    while((c=getc(stdin)) != '\n')
    {
        str[i] = c;
        i++;
    }
    str[i] = '\0';
    printf("%s",str);
    return 0;
}
于 2013-09-29T15:36:15.740 回答
-3

这是一种方法:

char ch;
while(1)
{
    if((ch=getchar())=='\n')
        break;
}// its working fine

另一种方式:

char ch;
while(1)
{
    scanf("%c",&ch);
    if((ch=='\n'))
        break;
}
于 2013-09-29T14:49:49.783 回答