[問題]不知道問題出在哪 如果有人知道可以請回 …
我有一個文字檔,內容為
input N1,N2,N3,N6,N7;
我用了一個char的指標
char *m = strchr(src,',') ;
就一個一個把他分開 然後讀取出來我要的字元 N1 N2 N3....
但是 一直到N6都沒問題
N7時我用了
char *n = strchr(src,';') ;
去處理最後一個字元
結果這個時後
char *m = strchr(src,',') ;
這行應該是等於NULL
但是他卻說你的程式引發了存取程式錯誤
誰可以跟我說是什麼原因呢
有需要我再付上程式碼
謝謝大家了
=================================code======================
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <conio.h>
using namespace std;
int readfile(int argc,char* filename);
void strchrn(char *dest,char *dest2, const char *src);
int main(int argc, char* argv[]) {
readfile(argc,argv[1]);
getch();
return 0;
}
int readfile(int argc,char* filename)
{
ifstream fin;
fin.open(filename);
string line;
string gatename[10000];
char* tmp;
char* dest;
char* dest2;
int i=0;
int gatecount;
if(argc != 2)
{
cout << "指令: read <檔案名稱>" << endl;
return 1;
}
if(!fin)
{
cout << "檔案I/O失敗" << endl;
return 1;
}
while(getline(fin,line)) {
istringstream ss(line);
string word;
while(ss >> word) {
if(word=="//")
break;
else if(word=="module")
break;
else if(word=="input")
{
ss >> word;
tmp=new char [word.size()+1];
dest=new char [word.size()+1];
dest2=new char [word.size()+1];
strcpy (tmp, word.c_str());
while(tmp!=NULL){
cout << tmp <<endl;
strchrn(dest,dest2, tmp);
gatename[i]=dest;
cout << gatename[i] <<endl;
i++;
tmp=dest2;
}
getch();
}
else
cout << word << endl;
}
// cout << endl;
}
fin.close();
}
void strchrn(char *dest,char *dest2, const char *src) {
char *n = strchr(src,',') ;
char *m = strchr(src,',') ;
cout <<"strlen(m) = " << strlen(m) << endl ;
int len = strlen(src)-strlen(m);
if (m!=NULL)
{
strncpy(dest, src, len);
strncpy(dest2, m+1,strlen(m)+1);
cout << "strlen(m)+1=" <<strlen(m)+1 << endl;
}
else
{
strncpy(dest, src, strlen(src)-strlen(n));
dest2=NULL;
}
cout << "dest=" << dest << endl;
dest[len] = '\0';
dest2[strlen(m)+2]='\0';
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.2.154
※ 編輯: dmx6 來自: 134.208.2.154 (08/11 21:25)
推
08/11 22:25, , 1F
08/11 22:25, 1F
※ 編輯: dmx6 來自: 134.208.2.154 (08/11 22:58)
→
08/11 22:59, , 2F
08/11 22:59, 2F
→
08/11 23:00, , 3F
08/11 23:00, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章