C言語できる人助けて
■ このスレッドは過去ログ倉庫に格納されています
https://i.imgur.com/N3VtmdK.png
この.txtに書いてある数字達を2次元配列に入れたいんだけどできない
ok
1.0 1.1 1.2
2.0 2.1 2.2
3.0 3.1 3.2
を表示して終わってほしい 下のforが[i][0]にしなきゃダメだった
でもそこは問題じゃないわ配列に入ってたら1行目が3回表示されるはずだから >>4
調べたけどよくわかんねえ難し過ぎだろ
>>5
txtの中身の?txtの順番は変えられない
こんな感じのファイルが何百個もあってそれを解析するプログラムを作りたい 前に書いたやつでtxt1行ごとに文字列配列に入れるやつがあるから
それとstrtokとやらを使えばいけるだろうか... >>8
テキストファイル見るならこれでいいじゃん
テラパッドも入ってるけど見づらい 32,34,36行目の1次元目のインデックス0じゃなくてiじゃね なるほどなあ
tokenむずかしいならline読み込んだ後、文字数で切り分けたらどうかw >>11
そうだね
でも0なら0で1行目の数字が3回出力されるはずだからまず配列に収納できてないのが問題 1行で取れちゃってるのね
行をsplitして配列にすればいいんじゃね? fscanfってichiとか%*sで読み飛ばさなくてもいけるんだっけ? fscanfってそんな便利なものじゃなかった気がする
タブ文字も含めてちゃんとフォーマット指定しないと駄目だと思う >>18
Python1ミリも分かんないから今からcを追加で勉強した方がいいと思って
cだって2時間勉強したぐらいの知識量しかないけど strtokくそむじいや!
何やってるか全く分からん fscanfをこうしてみて
char tmp[10];
fscanf(&fp, “%s¥t%f¥t%f¥t%f¥n”, tmp, &one, &two, &three); strtokは最初の1回目だけは第1引数に文字列渡す
2回目以降はNULLを渡す >>22
やっぱりfscanfだと解析したいtxtデータの書式上1行目を飛ばす必要があって(>>16みたいに1行目はデータラベルが書いてあるから)向いてないみたいだわ
>>23
なるほど、、 >>24
ラベルだけ先にfgetsなりで抜き出しちゃダメなの? >>25
1行目のラベル達は全部のtxtファイルで共通だから要らない情報なんだけど、
fscanfで1行目飛ばして2行目から読み込みをスタートする方法が分からない
というかfscanfって何行目を読み込むとか指定できないしめちゃくちゃ不便だな >>26
フォーマットに一致してない部分も全部読むんだっけか…
じゃあfgetsで一行ずつ読んでsscanfでその行の文字列解析が一番やりやすいかな fgets()を行数分(というかエラーになるまで)ループして
1行ずつsscanf()なりstotokなり使って処理した方が
分かりやすいと思う
1行目が不要なら最初の行は何もしないとかタイトル行として別な取り方するとかできる fp = fopen("xxx.txt", "r");
while (EOF != fscanf("%s\t%f\%f\%f\n", &a,&b,&c) {
n[i][0]=a; n[i]=b; n[i]=c; i++
}
for (i=0; i<3; i++) {
for (j=0;j<3; j++)
printf("%f", n[i][j]);
printf("\n");
}
fclose(fp); i<3 は潰しが効かないので
sizeof() 使って実際の要素数を求めること
hint man XtNumber >>31
これを実用とか辞めた方が世のため人のため ほら、これで動いたぞ
fscanfは\tと\nは無視してくれるらしい
https://i.imgur.com/nCVm0sy.png 練習問題としても相応しくない
課題1 配列を宣言し、その要素数を求める
課題2 多次元配列を初期化して、その要素を出力する もちろんループを使って
課題3 fscanf fgets などを使ってファイルをロードする
課題4 ロードしたテキストデータを変数に展開する int, float, char[]
それから >>1 の問題に取り組むべき >>31
ならLibreOffice Calcでこういう区切られたテキスト読み込む機能あるよ でも本来のファイル>>16だと1行目が邪魔でできないわ
>>38
レベル高すぎてむりだ
俺には苦しんでcと格闘するしかない >>40
え?インストールしてそのテキストファイルドロップするだけだぞ
後は読み込みウィンドウでポチポチするだけ 1行目飛ばせないってどういうこと
どうとでもできるだろそんなの >>44
ワロタ
パイソンにしようかな...
ビジュアルスタジオでできる? >>45
出来るけどVS Codeが軽くて多機能でおすすめ >>45
アホか仕事に合わせて道具は選ぶものだろ
awk ならもっと簡単だぞ >>46
同じものだと思ってたわ
でも慣れるのに時間かかりそうだな :とか{}とか何やってんだか awk '{print $2 $3 $4}
これだけ >>48
Visual StudioはIDEでVisual Studio Codeはテキストエディタ
スクリプト書く程度ならIDEなんて使う必要はない
:のあとに改行してインデント空けるとCで言う{}(ブロック)になる
逆にpythonには{}でブロックを表現するって概念がない、専らインデント
6行目の{}はCで言うところの%sとか%fとか >>47
cも満足にできないのに他の言語使うのって逃げてる感あって気に入らなかったけど道具を選ぶと言えばかっこいいな >>51
あのね格好の問題じゃないの
逃げるとかの問題じゃないの
精神論じゃプログラムは動かない 道具を選ぶってことは、どの道具でも扱えるってことだぞ というか、この手のテキスト操作多用するならWSL使った方がいいね 逃げるとかいう発想ならビジュアルなんちゃらとか使わず
メモ帳で書けっての メモ帳とかテラパッドとか禿げるからやめとけって書こうと思ったが
いまbccpadないのな >>56
vimあげるから初心者にメモ帳すすめるのはやめた方がいいよ >>58
勧めててないぞ
逃げる逃げないの話からの流れ 触ってみたけどPythonは全然読めない 時間があれば最初から勉強できたかもしれないけど
やはりstrtokとタイマンしかない >>60
きみの貯金を叩いてフリーランス雇った方がいいよ vimとemacsは産廃です
結局JetBrainsしか勝たん >>63
こうしてキミのような老害は取り残されていくわけだよ >>65
その拡張機能は頭のOSが古い人の後方互換のためにあるんだぞ >>65
ほう拡張機能に vim あるんだ
週明けに確認してみようっと >>67
今どきのエディタならどれもあるだろ
ちなみにxcodeてめぇはだめだ sscanfで簡単にできたわ
なんだったんだこれわ.....
皆さんありがとう
この後平均出したりフーリエ解析したり周期を出したりします ■ このスレッドは過去ログ倉庫に格納されています