我是c ++的新手。 我想从我的csv文件中读取某些单元格。 我找到了很多例子,但我仍然不知道......
#ifndef PIZZACRUST_H
#define PIZZACRUST_H
#include <fstream>
using namespace std;
class PizzaCrust{
private:
int crustOpt;
ifstream crustInput;
char crust[200];
public:
PizzaCrust();
void setCrustOption(int crustOpt);
}
;
#endif
这是cpp
#include "pizzacrust.h"
#include <iostream>
#include <fstream>
using namespace std;
PizzaCrust::PizzaCrust()
{
crustInput.open("pizzacrust.csv");
while(crustInput)
{
crustInput.getline(crust, 200);
cout << crust << endl;
}
crustInput.close();
}
void PizzaCrust::setCrustOption(int crustoption)
{
cout << "Please select the style of crust: ";
cin >> crustoption;
if ( crustoption > 0 && crustoption < 5 )
{
cout<<"You have selected " << crustoption << endl;
}
else
{
cout<<"Your selection is unavailable, please re-select from 1-4."<<endl;
cin >> crustoption;
cout<<"You have selected " << crustoption << endl;
}
}
这是csv文件
我怎么才能只阅读这个单元格,例如它是a1和a2 ??
“1。潘披萨
外面酥脆,里面蓬松。手工制作我们的招牌面团配方,烤至金黄色完美。“
答案 0 :(得分:0)
那不是CSV file,它是Excel或类似程序的屏幕截图。从那个截图(为什么发布文本文件的屏幕截图?)看来,&#34;分隔符&#34;不是逗号或分号(这是常见的),而是换行符。
因此,要读取文件中的第一条记录,您需要阅读两行。要读取第四条记录,您需要读取(并可能丢弃)3 * 3行,然后才能读取两行(三条带有记录结束空行)的数据。
如果要读取所有记录,则需要在循环中读取三行,可能类似
std::string crust;
std::string description;
while (std::getline(crustInput, crust) &&
std::getline(crustInput, description))
{
// Use the data read from the file somehow
std::string empty; // The empty line between the records
std::getline(crustInput, empty); // Read and discard the empty line
}