为什么getline不接受输入
Why getline not accepting input
从代码顶部开始工作,但令人惊讶的是,最后一个 cin.get(con) 不等待输入并通过接受任何输入终止程序,为什么会发生这种情况,请指导我我的代码出了什么问题 -
#include<iostream.h>
#include<conio.h>
#include <string.h>
struct country
{
char country[30];
char capital[30];
float income;
};
void main()
{
country c[3];
clrscr();
for( int i=0; i<3 ; i++)
{
cout << "n Country's name : ";
cin.ignore();
cin.getline(c[i].country, 30);
cout << "n Country's capital :";
cin.getline(c[i].capital,30);
cout << "n Per capita income :";
cin >> c[i].income;
}
char ch = 'y';
char cap[30];
int flag = 0;
cin.ignore();
cout << "n Enter Capital name : ";
cin.getline(cap, 30);
for(int k=0; k<3 ; k++)
{
flag = 0;
if(strcmp(c[k].capital,cap)==0)
{
flag = 1;
}
if(flag==1)
{
cout<< "n" << c[k].country << "t" << c[k].capital << "t" << c[k].income << "nn" ;
}
}
char con[30];
cout << "n Enter Country name : ";
cin.getline(con,30);
for(int m=0; m<3 ; m++)
{
flag = 0;
if(strcmp(c[m].country,con)==0)
{
flag = 1;
}
if(flag==1)
{
cout << c[m].capital << "t" << c[m].income << "n" ;
}
}
}
将cin.operator<<
和getline
结合起来会导致奇怪的行为。 所以,应该更改此代码
cout << "n Country's capital :";
cin.getline(c[i].capital,30);
cout << "n Per capita income :";
cin >> c[i].income;
可能到
cout << "n Country's capital :";
cin.getline(c[i].capital,30);
char buf[50]; //I don't know how long your floats are
cout << "n Per capita income :";
cin.getline(buf);
c[i].income = atof(buf); //#include <cstdlib>
相关文章:
- 为什么线程不接受此输入?
- B不接受8作为输入的是什么?C++
- C++数组输入不接受一定数量的整数
- 斯堪夫不接受输入
- C++字符数组不接受超过 4 个字符的输入
- CIN不接受C++中带有空格的输入?
- std::cin不接受输入
- 为什么我的代码在要求打印长度和宽度的值后不接受多个输入?
- 在此代码中,它不接受 i=0 的输入.它直接用于 i=1
- 有没有一种方法可以接受数字数组而不接受垃圾值的输入
- 扫描线C++不接受输入的功能
- 菜单选择器不接受有效输入
- SCANF 在 Eclipse 中不接受调试模式下的输入?
- #defined 函数只能接受原始输入而不接受变量?
- 我的C++程序不接受菜单后的输入
- 找出一个正方形逻辑中可能的网格数量,但代码不接受超过六个输入,它停止并说.exe停止工作
- C++控制台不接受键盘输入
- 程序不接受任何输入.第一次输入后,它会自动关闭
- 为什么getline不接受输入
- uint8_t不接受两位数的输入