我目前正在研究一個數獨驗證器,而我所做的方式是將每行分隔成長度爲9的數組並檢查,將每列分隔成一個長度數組9和檢查等我已經做了行已經做了這樣的事情如何掃描文件中的某些字符
for(i=0; i<9; i++)
fscanf(file, "%1d", &row1[i]);
for(i=0; i<9; i++)
fscanf(file, "%1d", &row2[i]);
for(i=0; i<9; i++)
fscanf(file, "%1d", &row3[i]);
for(i=0; i<9; i++)
fscanf(file, "%1d", &row4[i]);
它的工作方式我也想。
我在我的數獨解決方案中的每個數字都被一個空格水平分隔,並且在我的文件中垂直相鄰。
但是,我試圖將每列掃描到一個數組時遇到問題。基本上我想我需要做的是從第一個(左上角)字符開始第一列,並將其存儲到我的陣列的第一個插槽中。然後,我需要跳過9個字符,然後存儲該字符。
我想我可以做同樣的事情像
for(i=0; i<82; i += 9)
fscanf(file, "%1d", &col1[i]);
for(i=1; i<82; i+=9)
fscanf(file, "%1d", &col2[i]);
for(i=2; i<82; i+=9)
fscanf(file, "%1d", &col3[i]);
for(i=3; i<82; i+=9)
fscanf(file, "%1d", &col4[i]);
for(i=4; i<82; i+=9)
但我意識到它沒有工作,因爲我已經把我的數組大小9,因爲我被插入到第i個值在數組中這會不像其想要的那樣行事。
任何人都可以給我一個建議,我怎麼能實現這個?我認爲這是相當微不足道的,但我有嚴重的麻煩纏着它。
感謝
編輯:我還需要爲區域做到這一點,所以我基本上是在尋找一種方式來通過文件跳過和存儲,我想只有某些字符。
您必須檢查你真的在掃描這些值,總之檢查'fscanf()'的返回值。 – 2015-02-11 21:27:44