初めて投稿させてもらいます。
fgets関数でテキストファイルからchar型の文字列を取得した後、最初と次の数字の部分を引数の数字と比較したくて、次のような感じに書いてみたんですがどうしてもif文の中に処理が入ってくれません。
findFile(int janru, int keisiki){
……
while(fgets(fbuf, 255, file) != NULL){
if(fbuf[i] == (char)janru){
i = i + 2;
if(fbuf[i] == (char)keisiki){
……
読み込んでいるテキストファイルがこんな感じです。
0,7,jjj,11.bmp
3,2,aaa,12.bmp
……
デバッグ中にfbufの中身を見てみても文字列の先頭に謎の文字が出てしまっていてどこが原因なのか良くわかりません。
因みに環境はVC++2005Expressです。
よろしくお願いします。
↓こんなんでいいのかな
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char buf[256];
int column1;
int column2;
char column3[64];
char column4[64];
FILE* fp = fopen("foo.txt","r");
if ( fp == NULL ) return 1;
while ( fgets(buf, 255, fp) != NULL ) {
column1 = atoi(strtok(buf,",\n"));
column2 = atoi(strtok(NULL,",\n"));
strcpy(column3,strtok(NULL,",\n"));
strcpy(column4,strtok(NULL,",\n"));
printf("ジャンル=[%d] 形式=[%d] テキスト=[%s] 名前=[%s]\n", column1, column2, column3, column4);
}
fclose(fp);
}
こんなに簡単に出来るなんて・・・
C++から勉強していて、Cの関数について勉強不足でした。
あと修正するために誤って連投してしまいすいませんでした。
わかりにくい相談に乗っていただきありがとうございました
編集 削除