1樓:網友
陣列跨界訪問。
while(>person[i++]money;//i ++應為i
c/c++讀大檔案並存入陣列程式崩潰問題
2樓:網友
這是什麼原因呢?out of memery?如果是這樣的話,建議不要把所有的都存入陣列,可以讀入一部分,處理一部分。
存入陣列的話,那整個檔案都會在記憶體中了,這個檔案 2m的話,那就需要2m的連續記憶體空間。
其它原因的話,那還得另說。話說,你可以把程式崩潰時顯示的錯誤資訊提供出來。
對了,還有乙個地方,不知道是什麼樣的。你說的檔案約20000行,這個「約」,是已經達到了20000還是沒達到?
3樓:網友
系統棧記憶體空間有限,你把year month什麼的都放到main函式外宣告成全域性變數,或者用動態記憶體試試。
4樓:侯奇
大小為20000的陣列也不是很大啊,能把完整的出錯**貼出來麼?
c++檔案操作的問題 close();之後 程式崩潰。
5樓:網友
stu 太小。 最好先 讀檔案長度 然後 new 出 char 陣列 然後 刷進stu。 棧溢位了。
電腦開啟資料夾之後c++錯誤引起崩潰
6樓:匿名使用者
把win8換成win7把,可能是電腦配置低,我的也是。
7樓:網友
找乙個win8 64bit的 替換掉看看!
c/c++檔案操作為什麼會崩潰?
8樓:篤俠
二進位檔案的讀寫好像使用fread和fwrite函式吧。
9樓:
你找找別的原因吧,你這****都不會崩潰,只是邏輯上有問題,fprintf(fout,"%d",x);只向檔案寫入了最後正確讀取的乙個數。讀寫檔案的語句控制符「%d"應該是「%d "才對,沒有空格將讀取錯誤,寫時會把所有資料連起來,檔案就無法使用了。但這絕不會使**崩潰!
10樓:雨諾與諾
應該是您的while的條件問題,其他事沒有問題的,x是整形,你要整形對應1,就是開始符,我也不知道這個符號是什麼,貌似是死迴圈。
11樓:網友
你說的崩潰是什麼意思?
你這裡裡面根本就沒東西吧,是空檔案。你用fscanf從空檔案裡讀資料當然會有問題了。
12樓:無名可叫了啊
8行讀寫方式fopen("","rb");佔用了檔案,所以11行是無法以寫方式開啟的,要在fout之前先fclose(fin);
fscanf 返回的是成功讀入的引數的個數。
改成while(!feof(fp))
13樓:匿名使用者
fscanf第三個實參未宣告哦。
c++為什麼這個程式執行的時候會崩潰
14樓:靜心先生
你這根本不是c++,就是c語言。
求助!!這個c++程式為什麼一執行就崩潰?
15樓:it孤鶩
很簡單就是指只是宣告瞭乙個指標,沒有給他開闢一塊記憶體,所以直接報錯#include
class array
for(k=i=0;i0&&x[i]==x[i-1])continue;
k++;for(j=0;jif(a[j]==x[i])
b[j]=k;
delete x;
void showdata()
void shownumber()
array()
void main()
array c(a,7);;
16樓:小七說
#include
using namespace std;
class array
continue;
k++;for(j=0;j
怎麼連分都不給?你也太吝嗇了吧。
下面這個c++程式錯哪了,編譯能通過,執行時程式崩潰。
17樓:百小度
"xyz"分配在程式檔案中唯讀區段,不可寫。char *a="xyz";可以改成char a="xyz";
關於C語言讀取檔案開頭出現亂碼的問題
怎麼寫進去的就怎麼讀,格式一定要保持一致!最好是把整個工程源 檔案打包,給你看看才能知道具體原因。sizeof name 會是多少?c語言讀取txt檔案開頭出現亂碼 這是因為你的txt檔案的編碼和編譯器選擇的編碼不一致而導致的。按你使用的作業系統不同,如果是windows,可以直接用記事本開啟檔案,...
用C怎麼讀取檔案中指定字元,用C怎麼讀取檔案中指定字元?
前面的行數是不是固定的,如果是的話,直接streamreader的readline或者readtoend,讀出指定和行號就行了。當然,如果這行前面有固定的可以唯一標誌這行資料的東西的話,用正則之類的也是可以的。可以用正規表示式搞定字串提取 用正則過濾出來 regex re new regex 正規表...
C檔案讀取1 如何讀取文字檔案中的指定字串2 如何讀取文字檔案中指定字串之間的內容
string filecontent system.io.filestream mystream new filestream f test.txt filemode.open system.io.streamreader mystreamreader new streamreader mystre...