【发布时间】:2018-09-07 10:56:36
【问题描述】:
为了更准确,我删除了我的旧帖子。我正在使用 C++。我有一个 csv 文件;作为分隔符。使用以下代码读取一行,然后读取该行的所有元素并将它们转换为 int。我的问题是我需要将它们转换为 int16_t 或 int32_t。代码是:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main (int argc, const char * argv[]) {
string line, csvItem;
ifstream myfile ("modifica1.csv");
int lineNumber = 0;
int lineNumberSought = 7462;
if (myfile.is_open()) {
while (getline(myfile,line)) {
lineNumber++;
if(lineNumber == lineNumberSought) {
istringstream myline(line);
string bus1s;
string bus2s;
string bus3s;
string bus4s;
string bus5s;
string bus6s;
string bus7s;
string bus8s;
string bus9s;
getline(myline,bus1s,';');
getline(myline,bus2s,';');
getline(myline,bus3s,';');
getline(myline,bus4s,';');
getline(myline,bus5s,';');
getline(myline,bus6s,';');
getline(myline,bus7s,';');
getline(myline,bus8s,';');
getline(myline,bus9s,'\n');
int bus1;
int bus2;
int bus3;
int bus4;
int bus5;
int bus6;
int bus7;
int bus8;
int bus9;
bus1=stoi(bus1s);
bus2=stoi(bus2s);
bus3=stoi(bus3s);
bus4=stoi(bus4s);
bus5=stoi(bus5s);
bus6=stoi(bus6s);
bus7=stoi(bus7s);
bus8=stoi(bus8s);
bus9=stoi(bus9s);
}
}
myfile.close();
}
return 0;
}
【问题讨论】:
-
回复:“我有一个以 ; 作为分隔符的 csv”——所以,你有一个 ssv。
-
我将 xlsx 文件转换为 csv,但输出是带有 ;作为分隔符。老实说,我不知道为什么,但这对我来说不是问题。
标签: c++ csv type-conversion