No.1ベストアンサー
- 回答日時:
AdobeのXMLみたいw
でですが、解凍します。
ファイルをfopen~fgets~fcloseはわかりますよね?
注意fgetsは最後の改行コードも読み込むので、これを削除してくださいね。
それ以外は、strtokで分離すればOKです。
ですが、この場合のお勧めは、strchrの方がいいかも
それと、プリスキャンが必要かも知れませんよ。
1ラインの最終が600ということで、固定長600でいいのかな?
void filter(char *s) {
while(*s) {
switch(*s) {
case 13:
case 10:
*s=0;
default:
return;
}
s++;
}
}
typedef struct {
float value[600];/* 1からなので-1して格納する */
}HOGE;
HOGE *get_data(char *filename) {
FILE *fp;
char buffer[1024*10];/* 1行の最大の長さ */
int line;
HOGE *hoge;
int value_no;
char *t;
fp=fopen(filename,"rb");
if (!fp) {
/* エラー処理はしてね */
}
/* プリスキャン */
line=0;
while(fgets(buffer,sizeof(buffer),fp)) {
line++;
}
rewind(fp);
hoge=(HOGE *)malloc(sizeof(HOGE)*(line+1));
line=0;
while(fgets(buffer,sizeof(buffer),fp)) {
filter(buffer);
t=buffer;
for (value_no=0;value_no<600;value_no++) {
t=strchr(t,':')+1;/* ちょっとテクが使われてます */
hoge[line].value[value_no]=strtof(t,NULL);
}
line++;
}
/* アロケーターで+1しているので、必要ならデメリタも書いてもいい */
/* というのは、これでは何行読み込んだか、後から知る方法がないためです */
fclose(fp);
return(hoge);
}
No.3
- 回答日時:
asuncion さんども
まーそのつっこみがあるということは、意味がわかってもらえてるあたりが
うれしいっすねw
なれると、面倒で大体こうですね
13,10は文字に直すとCR LF
改行コードです
先頭にCRは古いMACでよくつかわれ、最初にLFはLinuxなどが多く
CRLFと両方があるのが、MS-DOS系列のファイルの特性です
今回は、最初の1つ目でデメリタに出来るので、それをサンプルした時点で
=0代入。これをEOT=EndOfTextというフラグに置き換えています、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- C言語・C++・C# C言語について教えて欲しいです。 ファイルの中身をコピーするプログラムを作ってます aというファイル 7 2022/11/03 19:21
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でファイル読み書きを早く...
-
c言語でのfscanfについて
-
構造体のメンバにファイルポイ...
-
fscanfでループしてしまう。
-
テキストファイル内に対して, ...
-
エラーがわかりません、、
-
ファイルからCR/LFを除去したい
-
C言語を用いて、csvファイル内...
-
辞書順にソートしたいのですが...
-
C言語の課題です
-
C言語
-
_popen() のエラー取得
-
[C言語]2つのファイルを用いた...
-
ファイルが読み込めない・・・
-
ファイルに行番号を追加
-
main関数の中をスッキリさせたくて
-
ファイルへの書込み処理が異常...
-
fopenでファイル名に、変数を使...
-
乱数とファイルの入出力の質問...
-
test.csvの内容
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数ファイルの同時読み込みの...
-
ファイルへの書込み処理が異常...
-
C言語でファイル読み書きを早く...
-
c言語でのfscanfについて
-
fopenでファイル名に、変数を使...
-
ファイル出力で改行を入れたい!
-
C言語にてXMLファイルから任意...
-
CRC32の計算方法
-
fgets( ) の返り値は何?
-
InternetReadFileを使ったファ...
-
【C言語】ファイルを読み込んで...
-
VisualStudioでのファイルの入...
-
commons-netでのFTP送信について
-
日本語ファイル名のFTPについて
-
fgets関数の利用 c言語
-
C言語でコマンドmvを実行
-
「コマンドライン引数チェック...
-
C言語でセグメンテーションエ...
-
構造体のメンバにファイルポイ...
-
エラー C2664
おすすめ情報