读取文件和使用strtok函数时出现问题 我已经编写了一个C++代码,它必须从TXT文件读取信息,当它找到一个字符时,它必须跳转到一个新的行。这很容易,但我在执行时遇到了问题,我已经试了好几个小时找问题,但一直没有成功我附上了密码
谢谢你的帮助读取文件和使用strtok函数时出现问题 我已经编写了一个C++代码,它必须从TXT文件读取信息,当它找到一个字符时,它必须跳转到一个新的行。这很容易,但我在执行时遇到了问题,我已经试了好几个小时找问题,但一直没有成功我附上了密码,c++,C++,谢谢你的帮助 #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_ba
#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;
}
您正在读取函数中使用未初始化的指针温度。尝试写入此内存位置将调用未定义的行为。不要创建临时指针。相反,你可以做字符温度;并将temp的地址(即&temp)传递给read函数。然后不需要使用strtok,只需将读取的字符与|的输出进行比较即可?请提供一个输入文件内容和输出示例。例如,我的text.txt文件将包含1个| Peter | Professor,输出将是:1个Peter Professor在|在一个新行中我已经更改了温度,但我仍然有问题。它编译得很好,但我在执行时遇到了问题。最后,它在屏幕上显示奇怪的字符和运行时检查失败2-堆栈周围变量temp已损坏。这意味着什么?@pitbull:很有可能,这意味着你试图在一个字符temp;中读取多个字符;。其他的角色都溢出来了。