文件读取在控制台输出问题
#include <iostream>
#include <fstream>
#include <string>
#define N 9999
using namespace std;
int main(int argc, const char * argv[]) {
string words[N];
string wordsMeaning[N];
int wordsNumber;
ifstream infile;
infile.open("WordsData.txt");
infile >> wordsNumber;
for(int i = 0; i < wordsNumber; i++) {
infile >> words[i] >> wordsMeaning[i];
}
infile.close();
cout << wordsNumber << endl;
for(int i = 0; i < wordsNumber; i++) {
cout << words[i] << " " << wordsMeaning[i] << endl;
}
return 0;
}
#include <fstream>
#include <string>
#define N 9999
using namespace std;
int main(int argc, const char * argv[]) {
string words[N];
string wordsMeaning[N];
int wordsNumber;
ifstream infile;
infile.open("WordsData.txt");
infile >> wordsNumber;
for(int i = 0; i < wordsNumber; i++) {
infile >> words[i] >> wordsMeaning[i];
}
infile.close();
cout << wordsNumber << endl;
for(int i = 0; i < wordsNumber; i++) {
cout << words[i] << " " << wordsMeaning[i] << endl;
}
return 0;
}
代码如上,大概就是把文件中的单词和单词意思分别读入两个数组中
在读入单词之前 先读入第一行的数字,这个数字是单词总个数
大致的问题就是在vs下选择开始调试,可以正常输出所有单词,但是选择开始执行就不能输出所有单词,只能输出变量wordsNumber
而wordsNumber并不是4500,而是一个负数
这说明在直接运行的时候,根本就没有读入第一行并且赋值给wordsNumber
想问一下如何去修改才能保证直接运行的时候也是输出所有单词
WordsDatas.txt的文件大致如下
在vs下直接运行结果:
在vs下调试窗口的结果:
在Xcode下调试的结果也是同样: