Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取文件和使用strtok函数时出现问题 我已经编写了一个C++代码,它必须从TXT文件读取信息,当它找到一个字符时,它必须跳转到一个新的行。这很容易,但我在执行时遇到了问题,我已经试了好几个小时找问题,但一直没有成功我附上了密码_C++ - Fatal编程技术网

读取文件和使用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;中读取多个字符;。其他的角色都溢出来了。