问题1 =我在互联网上搜索,我发现每个人都告诉他们不要在c ++中使用getch()
或getche()
。那我怎么能从用户那里得到一个角色?例如,我写了这段代码,所以如何用另一个语句替换getch?
问题2 =我在visual studio 2013中编写了这段代码并且它工作正常但是当我在代码块中编写并编译whit GNU GCC编译器时,getchar()语句不起作用。为什么??
#include <iostream>
#include "conio.h"
using namespace std;
int main()
{
int word_counter=0,char_counter=0;
char ch;
cout<<"Enter your paragraph and press ENTER for end :\n";
cin>>ch;
while((ch=getchar())!=13)
char_counter++;
cout<<"Number of characters ="<<char_counter<<endl;
return 0;
}
答案 0 :(得分:1)
第一个问题:
使用cin
通过控制台获取用户的输入。
第二个问题:
GNU gcc编译器不支持getchar()
,因为conio不是gcc的一部分。
修改强>:
如前所述,请使用getline()
而不是cin,因为只有在输入为'\n'
时才希望循环中断。
答案 1 :(得分:0)
响应1:getch()
用于从用户(或文件)中仅询问(读取)一个字符。
回复2:我想你要计算char的数量。
int main()
{
char c;
long long n;
do
{
cin.get(c);
cout<<c;
n++;
}while(c!='.');
cout<<n<<endl;
return 0;
}
答案 2 :(得分:0)
问题1 =我在互联网上搜索,我发现每个人都告诉不要在c ++中使用getch()或getche()。那我怎么能从用户那里得到一个角色?
大多数环境会在文本到达您的程序之前对其进行缓冲。您必须输入文本,然后按Enter键才能将缓冲区传输到您的程序。
标准C ++中没有函数或工具可以在用户输入字符时从中获取字符。
当用户输入字符时,您需要使用特定于操作系统的功能来获取字符。您可能还想在互联网上搜索“按键”一词。
问题2 =我在visual studio 2013中编写了这段代码并且它工作正常但是当我在代码块中编写并编译whit GNU GCC编译器时,getchar()语句不起作用。为什么?
正如其他人所说,conio.h
文件不是标准的。
根据this reference on getchar
,您需要为此功能添加stdio
。
另请注意,C语言流(例如stdin
和printf
)可能与cout
和cin
等C ++语言流不兼容。他们可能有不同的缓冲区。选择一个或另一个不要越过溪流。