C++ 的初学者问题
A beginners issue for c++
该程序旨在获取少于15个字符的整数和名称,并将它们存储在数组中。
输入 0 时,程序显示数组的内容,然后终止。显然,这里有些不对劲...
#include <iostream>
#include <iomanip>
using namespace std;
bool getInput(int*, char(*)[15]);
void giveOutput(int*, char(*)[15]);
int main(void)
{
bool repeat = true;
int number[100] = {0};
char name[100][15];
do
{
repeat = getInput(number, name);
} while(repeat);
giveOutput(number, name);
return 0;
}
void giveOutput(int* number, char(*name)[15])
{
int i = 0;
while(number[i] != 0)
{
cout << endl << i << setw(6) << name[i];
i++;
}
cout << endl << endl;
return;
}
bool getInput(int* number, char(*name)[15])
{
int temp;
int i = 0;
for(; number[i] != 0; i++);
cin >> temp;
if(temp == 0)
return false;
number[i] = temp;
cin.getline(name[i], 15, 'n');
cin.clear();
cin.ignore(512, 'n');
return true;
}
我将非常感谢解决此问题的任何帮助。程序未按预期执行;它不会输出在数字后面输入的文本。此外,这个网站不断向我发送垃圾邮件,告诉我我的问题主要是代码。所以我正在写一堆胡言乱语来试图安抚这台该死的机器。希望这已经足够了,我终于可以发布我的问题了。
这是一个工作版本:
#include <iostream>
#include <iomanip>
using namespace std;
bool getInput(int*, char(*)[15]);
void giveOutput(int*, char(*)[15]);
int main(void)
{
bool repeat = true;
int number[100] = {0};
char name[100][15];
do
{
repeat = getInput(number, name);
} while(repeat);
giveOutput(number, name);
return 0;
}
void giveOutput(int* number, char(*name)[15])
{
int i = 0;
while(number[i] != 0)
{
cout << endl << number[i] << setw(6) << name[i];
i++;
}
cout << endl << endl;
return;
}
bool getInput(int* number, char(*name)[15])
{
int temp;
int i = 0;
for(; number[i] != 0; i++);
cin >> temp;
if(temp == 0) return false;
number[i] = temp;
cin.getline(name[i], 15, 'n');
cin.clear();
//cin.ignore(512, 'n');
return true;
}
你不应该在 cin.clear() 调用后模拟垃圾收集器。
附言只有两个变化:1)输出数字[i]而不是给出输出中的i;2)取出cin.ignore()。
相关文章:
- 嵌套for循环C++的问题(初学者)
- 初学者问题:如何使用这些晦涩难懂的命令,例如C++中的'RenderWindow'
- 初学者问题:如何访问此变量?
- 您好,我是C++初学者,有这种问题.它给了我倍增的错误
- 初学者问题:C++指针/地址 - 和变量之后不是以前?
- 初学者关于数组和指针的问题
- 模板编程初学者问题
- 在 Rcpp-Function 中使用布尔向量的子集(Rcpp 初学者的问题..)
- 我在C 初学者中发现了无限的循环问题
- 在C 中的初学者,我面临此问题错误C3867
- 我的代码(c ++ 初学者)有什么问题?
- 初学者 - 我的"produce word backwards"程序有什么问题?
- 如果/else语句未显示/可变分配问题的输出;初学者程序员
- 有关循环冗余代码的初学者问题
- 初学者问题 - 致命错误LNK1561:必须定义入口点
- 将功能与"int main"问题分开(初学者)
- 这种矢量编码有什么问题?(初学者)
- C++练习车辆程序问题 - 初学者编程
- for循环的问题(初学者)
- 获取dll路径/字符串问题(c++初学者)