这是一个很奇怪的问题,但是我编写了一个代码,该代码从一个充满数字的文本文件中读取为字符串,并将其转换为整数。该文件包含392
,程序仅读取#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main() {
string line;
ifstream read;
int a[20][20];
vector<int>v;
int m;
string y;
string lines [20] ;
read.open("/Users/botta633/Desktop/Untitled.txt",ios_base::binary);
while (read>>line){
y="";
for (int i=0; i<line.length(); i++) {
y+=line[i];
}
m=stoi(y);
v.push_back(m);
}
for (int i=0; i<20; i++) {
for (int j=0; j<20; j++) {
int k=i*20+j;
a[i][j]=v[k];
}
}
for (int i=0; i<20; i++) {
for (int j=0; j<20; j++) {
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<v.size()<<endl;
return 0;
}
。
89 41
92 36
54 22
40 40
当我尝试更改文件中的整数数量时,它也确实读取了其中一些整数。
文件如下
li
答案 0 :(得分:1)
C2 A0
),这些空格由ifstream
解释为非空白和非数字。因此,它停止阅读。用西方编码保存它-编辑器将用空格替换不间断空格。
// source
ifstream is("full_path"); // open the file
// OR, if wide characters
// wifstream is("full_path"); // open the file
if (!is) // check if opened
{
cout << "could not open";
return -1;
}
// destination
vector< int > v;
// read from source to destination - not the only way
int i;
while (is >> i) // read while successful
v.push_back(i);
cout << v.size();