我在C ++中编写了一个代码,它必须从txt文件中读取信息,并在找到“|”时它必须跳到一个新的字符串。它的东西很容易但我在执行时遇到问题并且我一直试图找到问题几个小时而且我还没有成功。 :(我附上了代码。
Thaaaanks提前帮助你。
#include<iostream>
#include<fstream>
#include<string>
#include <stdio.h>
using namespace std;
int main ()
{
string ruta_base( "C:\\a\\" );
char * pch;
ifstream myReadFile;
const string rutaFichero=ruta_base.append("text.txt");
myReadFile.open(rutaFichero.c_str());
char* temp;
if (myReadFile.is_open()) {
while (!myReadFile.eof()) {
myReadFile.read(temp,1);
pch = strtok(temp,"|");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, "|");
}
}
}
myReadFile.close();
system("pause");
return 0;
}
答案 0 :(得分:0)
您在temp
函数中使用了未初始化的指针read
。尝试写入此内存位置将调用未定义的行为。不要创建temp
作为指针。相反,您可以执行char temp;
并将临时地址&temp
传递给read
函数。然后您无需使用strtok
,只需将阅读的字符与|