我有一个文本文件,其中一行信息的结构如下:
制造商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吗?看起来它正在将文本文件中的三个不同“单词”打印成三个字符。
答案 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());