無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
デジキャメ

無題

#1

投稿記事 by デジキャメ » 15年前

現在作成中のピ○ロスで、完成となる絵の配列を別のファイルから読み込ませたいのですが、

その過程で「配列の1つ1つの数字を読み込ませる作業」に悩んでいます。

空白や、改行を読み込まない(数字だけを読み込む)関数はあるのでしょうか??

宜しくお願い致します。



イメージ例

(1 3 5 7 9
2 4 6 8 0)の、2行5列、10個の数字を読み込む場合

 記号・空白(=_)・改行(=改)を無視できる
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

(1_3_5_7_9改2_4_6_8_0)改

 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
   数字だけをファイルから読み込む

toyo

Re:無題

#2

投稿記事 by toyo » 15年前

fscanf( )で出来るのではないでしょうか

デジキャメ

Re:無題

#3

投稿記事 by デジキャメ » 15年前

ありがとうございます。一度fopen,fsanfを用いてみました。

以下の要領で実行しましたが、下記のエラーが出てしまいます。
何度も変化させて実行させていますが、DirectXには特別な
宣言が必要なのでしょうか?

#include"DxLib.h"
#definePI_W(10)
#definePI_H(10)

intMyDrawPixel(intx,inty,intcolor){
int sx, sy;

sx = SET_X + x*SIZE; sy = SET_Y + y*SIZE;
DrawBox(sx, sy, sx+SIZE-1, sy+SIZE-1, col[colo[/url],TRUE);return0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){//main

int i,j,PixelData[PI_H][PI_W];
FILE *fp;

fp=fopen("p.txt","r");
if(fp==NULL){printfDx("FILE ERORR");exit(0);}
for(i=0; i<PI_H; i++){
for(j=0; j<PI_W; j++){
fscanf("%d", &PixelData[j]);
}
}
fclose(fp);
:
:
}
'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。


'fscanf' : 1 番目の引数を 'const char [3]' から 'FILE *' に変換できません。指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

Mist

Re:無題

#4

投稿記事 by Mist » 15年前

fscanfの引数が間違っています。
新しい関数を使用する場合は、まずググって引数・戻り値・処理内容を確認しましょう。

http://www.bohyoh.com/CandCPP/C/Library/fscanf.html

デジキャメ

Re:無題

#5

投稿記事 by デジキャメ » 15年前

>Mistさん

ご指摘ありがとうございます。

引数と引数の数を間違えていました。

修正したことろ、期待通りに実行結果がでました。

閉鎖

“C言語何でも質問掲示板” へ戻る