2013-09-29 113 views
2

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

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

这样的事情,但我不能做到这一点。

+0

C++解决方案也会有所帮助,谢谢 – manish

回答

1

IIUC,你要寻找的getchar功能:

while (1) 
{ 
     char c = (char)getchar(); 
     if(c=='\n') 
     break; 
     //do operation on the character 
} 
//give output 
+1

为什么每个人都使用break而不是简单地使用readed char作为循环条件? 'while((c =(char)getchar())!='\ n'){...}' – Manu343726

0

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

也可以尝试比较(一== 10) 10是 '\ n'

+0

为什么你会建议将''\ n''改成'10'?这有什么帮助?它所做的只是使意图不太清楚。 –

+0

啊......这不会改变任何事情,只是要仔细检查他使用'\ n'(没有错字错误),即ascii 10.因为我没有看到他使用的代码有任何问题。 – Waman

-3

这里的ASCII值是单向的:

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

而另一种方式:

char ch; 
while(1) 
{ 
    scanf("%c",&ch); 
    if((ch=='\n')) 
     break; 
} 
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; 
}