c++ 关于getchar()函数
#include"stdafx.h"#include<iostream>#include<string>#include<stdio.h>usingnamespacest...
#include "stdafx.h"
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
string name[5];
float feng[5][3];
int main()
{
for (int i = 0; i < 5; i++)
{
cout << "请输入学生的名字" << endl;
cin >> name[i];
for (int k = 0; k < 3; k++)
{
cout << "请分别输入3科成绩" << endl;
cin >> feng[i][k];
system("cls");
}
}
int y;
while (true)
{
char x;
x = getchar();//getch:所有的输入设备 getchar 字符型getchar();用#include<stdio.h>
//getch(); 用#include<conio.h>
cout << "请输入你要查询的学生号,按N结束查询,按A修改内容" << endl;
cin >> y;
if (x == 'A')
{
cout << "请输入您要修改的学生号" << endl;
cin >> y;
cout << "请输入学生姓名" << endl;
cin >> name[y - 1];
for (int i = 0; i < 3; i++)//..P
{
cout << "请分别输入3科的成绩" << endl;
cin >> feng[y - 1][i];
}
}
if(x=='N')
{break;}
else
{
cout << name[y - 1] << endl;
for (int i = 0; i < 3; i++)
{
cout << feng[y - 1][i] << " ";
}
}
}
return 0;
}
问题出在 死循环里 输入A 后没有进入后面的循环 提示访问权限问题 展开
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
string name[5];
float feng[5][3];
int main()
{
for (int i = 0; i < 5; i++)
{
cout << "请输入学生的名字" << endl;
cin >> name[i];
for (int k = 0; k < 3; k++)
{
cout << "请分别输入3科成绩" << endl;
cin >> feng[i][k];
system("cls");
}
}
int y;
while (true)
{
char x;
x = getchar();//getch:所有的输入设备 getchar 字符型getchar();用#include<stdio.h>
//getch(); 用#include<conio.h>
cout << "请输入你要查询的学生号,按N结束查询,按A修改内容" << endl;
cin >> y;
if (x == 'A')
{
cout << "请输入您要修改的学生号" << endl;
cin >> y;
cout << "请输入学生姓名" << endl;
cin >> name[y - 1];
for (int i = 0; i < 3; i++)//..P
{
cout << "请分别输入3科的成绩" << endl;
cin >> feng[y - 1][i];
}
}
if(x=='N')
{break;}
else
{
cout << name[y - 1] << endl;
for (int i = 0; i < 3; i++)
{
cout << feng[y - 1][i] << " ";
}
}
}
return 0;
}
问题出在 死循环里 输入A 后没有进入后面的循环 提示访问权限问题 展开
2个回答
展开全部
前面输入5个学生信息。输入结束 加上 fflush(stdin); 目的清除输入缓冲区里的剩余字梁祥销符,例如 回车符,以免 getchar(); 读入回车符,以至无法读入 A 或宴灶 N。
另外 去掉 system("cls"); 否则你看不清你的输入。
for (int i = 0; i < 5; i++)
{
cout << "请输入学生的名字" << endl;
cin >> name[i];
cout << "请分别输入3科成绩" <<橡游 endl; //挪出 k 循环。
for (int k = 0; k < 3; k++) cin >> feng[i][k]; // 输入3个
}
fflush(stdin); //加上关键的一句
int y;
while (true)
{
char x;
x = getchar();
....
另外 去掉 system("cls"); 否则你看不清你的输入。
for (int i = 0; i < 5; i++)
{
cout << "请输入学生的名字" << endl;
cin >> name[i];
cout << "请分别输入3科成绩" <<橡游 endl; //挪出 k 循环。
for (int k = 0; k < 3; k++) cin >> feng[i][k]; // 输入3个
}
fflush(stdin); //加上关键的一句
int y;
while (true)
{
char x;
x = getchar();
....
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |