Getline正在读取字符串作为字符

时间:2014-08-21 22:57:14

标签: c++ std getline

我有一个文本文件,其中一行信息的结构如下:

  

制造商ModelNumber SerialNumber

我正在尝试使用getline来检索信息:

std::string vendorID;
std::ifstream vendFile;
vendFile.open(fNameVendID);
std::getline(vendFile, vendorID);
printf("Info: \t\t%s\n", vendorID);

控制台的输出是:

  

E2 ^

我在这里错过了getline吗?看起来它正在将文本文件中的三个不同“单词”打印成三个字符。

2 个答案:

答案 0 :(得分:3)

printf %s修饰符需要类似C的char*字符串,而不是std::string

printf("Info: \t\t%s\n", vendorID.c_str());

或者只是,在标准C ++中,忘记printf

std::cout << "Info: \t\t" << vendorID << std::endl;

答案 1 :(得分:2)

要么是

std::cout << "Info:\t\t" << vendorID <<std::endl;

printf("Info: \t\t%s\n", vendorID.c_str());