请帮忙!每当它输出数组时,它就会打印出垃圾:(我的代码的目的是让它通过一个长文本文件,它有一个转换,就像这样。
catch
并且要把它分解为像这样的格式:
2016-20-5: Bob: "Whats up!"
2016-20-5: Jerome: "Nothing bro!"
(BTW有一个名为Person's Name: Bob Message Sent: Whats up! Date: 2016-20-5
的文件,如果我使用"char.txt"
它可以使用,但我无法使用string
因为某些功能只接受string
)
这是我到目前为止所做的,仍然试图打印出来:
char*
答案 0 :(得分:2)
您可以通过str.c_str()
http://www.cplusplus.com/reference/string/string/c_str/将字符串转换为字符数组/指针
您可以将其结合到:
std::string linestr;
std::getline ( readchat,linestr);
char * line = linestr.c_str()`
替代方案:使用readchat.read()
http://www.cplusplus.com/reference/istream/istream/read/
答案 1 :(得分:1)
回答,感谢Loki Astari! 新代码:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::ifstream readchat("chat.txt");
std::string line;
while (std::getline(readchat, line, ':'))
{
std::cout << line << std::endl;
}
}
说明:使用字符串而不是char,因为它更整洁,总体上更好。要将文件读入我的字符串,我使用std::getline(readchat, line, ':')
,它还负责切割:中的字符串。然后,由于readchat被读入了行,我打印出行并添加了一个endl,每次剪切字符串时都会生成一个新行。