C++ Getline不工作
我使用的是visual studio 2012,但每当我使用getline函数时,它旁边没有暂停,甚至循环也没有运行 这是我的密码:C++ Getline不工作,c++,C++,我使用的是visual studio 2012,但每当我使用getline函数时,它旁边没有暂停,甚至循环也没有运行 这是我的密码: #include<iostream> #include<stdio.h> void check_a() { char a [50]; int i =0 , ca=0; cout <<"Enter a phrase"; cin.getline (a,49); while (a [i
#include<iostream>
#include<stdio.h>
void check_a()
{
char a [50];
int i =0 , ca=0;
cout <<"Enter a phrase";
cin.getline (a,49);
while (a [i]!='\0'){
if(a [i]=='a')
a++;
i++;
}
cout <<"Letter \'a\' occurs "<<a <<" times in this phrase";
}
int main()
{
check_a ();
return 0;
}
有任何修复或替代方案吗?
getline
工作正常
替换a++代码>与ca++代码>以获得正确的输出
变量ca
是您的预期计数器。我多次遇到此问题,我发现通常要解决此问题,您只需输入:
cin.clear();
cin.sync();
在getline()之前 尝试替换cin.getline(a)代码>带有cin>>a
。请让我知道你需要如何发布真实代码而不是幻想代码。显示的代码甚至不会编译,因为a
在check_a()
中声明了两次,作为两个不同类型的变量,具有相同的名称。你需要发布真实的代码,而不是浪费每个人的时间。失败。@SamVarshavchik这是他的真实代码,他在问我们为什么它不起作用。请不要这么泄气,这不是真正的代码。他声称这是无法正确执行的真实代码。问题是真正的代码是编译的,而这一个没有,有明显的语法错误。尝试编译所显示的代码,并重现所声明的结果。你不能。
cin.clear();
cin.sync();