例えば
------------------
ほげほげ1
ほげほげ2
1,2
2,4
3,8
4,16
------------------
というデータファイルがあったとき3行目からのデータだけを抽出するにはc言語のfscanfでどのように書けばいいでしょうか?
簡単にでかまわないので、どなたか教えてください。

A 回答 (3件)

1行目、2行目に空白がないのであれば、



int x,y;
fscanf(fp,"%*s %*s %d,%d ",&x,&y);

で、xに1、yに2が入ります。
    • good
    • 5
この回答へのお礼

ご回答ありがとうございました。
一番シンプルで分かりやすかったので、ベストアンサーにさせていただきます。

お礼日時:2011/04/17 11:55

おっと!


1行目と2行目を読み飛ばす、っていうコードを追加する必要があるぞ!
    • good
    • 3
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2011/04/17 11:55

こんな感じですね。



char s[256];
fscanf(stream, "%*[^\n]%*c%*[^\n]%*c%255s", s);

バッファのサイズは適当に調整してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考にさせていただきます。

お礼日時:2011/04/17 11:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qこれは目の病気ですよね?Σ

これは目の病気ですよね?Σ

一年前くらいから左目まぶたらへんがぽこっとなっているのに気づきました。
親に相談したら「ばくがんなんたら」など言われていずれなおる言われたんですが、最近黒くなってきてしまいました
心配ですΣ

目の深刻な病気なんでしょうか是非教えて下さい:

Aベストアンサー

こんにちは

眼科ではなくて皮膚科で見てもらうといいですよ

QC言語について質問です。 C言語のビット演算で10進数の1を左に1ビットずつずらしていって32ビット

C言語について質問です。


C言語のビット演算で10進数の1を左に1ビットずつずらしていって32ビットで表示するプログラムを書いてるんですが…最後の値が負になってしまいます。
変数の型はunsigned にしているんですが。どうしてでしょうか?

Aベストアンサー

おそらく、printf() しょ書式指定子が、 %ud ではなくて、 %d になっているためです。

ちなみに、左シフトの場合、signed でも unsigned でも、操作自体は変わりません。
(右シフトは符号の扱いがある)

それを、表示するときに、符合付きと見なすか符号無しと見なすかです。

Q目の病気 ここ3日ぐらい朝起きると目の下?の下のまつげのところにめっちゃ目やにがつきます 小さい時

目の病気

ここ3日ぐらい朝起きると目の下?の下のまつげのところにめっちゃ目やにがつきます
小さい時からそうゆうのがあったので気にしてなかったのですが、今ふと目を見たら左目の左下一部が赤くなってます…
こんなこと初めてで少し心配です
痛いのかな?痛みはないと思います
寝不足で目がしょぼしょぼはします。
言われると、違和感はあるかも?
でも全然気にならないです

これは何か病気なのでしょうか?
眼科に行くのも怖いです…

Aベストアンサー

眼科にいってください(^^)

全然怖くないですよ

多分ですが病気ではないです
目にトラブルがあると思います

目薬で治る程度だと思いますよ

だけど放置すると
瞼全体が腫れることも

先日私は放置してお岩さんになりました(笑)
だけど目薬と塗り薬だけで治りましたよ

目は大切な部分なので
絶対に放置しないで
月曜日に眼科に行って目薬もらってくださいね

デキモノが出来ている時は
ドラッグストアの目薬ではダメですよ

眼科行くと
安心しますよ

お大事に

QC言語初心者の質問 fscanf

C言語を勉強し始めた初心者です。
後述するプログラムにおいて、カレントディレクトリ上にあるフォルダー(data)内のファイル名をfscanfで読み込んで、標準出力で表示するプログラムを作っています。
コンパイルはうまくいくのですが、プログラムを実行しようとするとプログラムが停止してうまくいきません。
不具合点と改善点をおしえてください。
実行環境?はwindows7,visual studio 2013 です。

#include<stdio.h>

int main(void)
{
int i=0;
char s[100][100];
FILE *fp;
fp=fopen(".\\data","r");
while((fscanf(fp,"%s",&s[i][100]))!=EOF){
printf("%d:%s\n",i,s[i][100]);
i++;
}
return 0;
}

Aベストアンサー

ディレクトリーを読むなら、
http://www.geocities.co.jp/SiliconValley-Cupertino/4084/Cprogram/myls.html

こういうふうにします。

Q母が網膜中心静脈分岐閉塞症という目の病気にかかってしまいました

母が網膜中心静脈分岐閉塞症という目の病気にかかってしまいました。

他にも母はうつ病、C型肝炎、過去にはくもまっか出血などいろいろな病気があります。最近暗くなってしまって見ているだけで張り裂けそうです。

網膜中心静脈分岐閉塞症は左目だけです。病気じゃない目も視力は0,04くらいです。両目とも多分、今は0,03~0,04くらいです。

母はテレビを見るのが唯一の楽しみでしたので、今はテレビもぼやけてしまっている状態です。

何か、良い方法(食事、生活面など)はないでしょうか?

何とか、テレビだけでも見れるようにしてあげたいです。

ご面倒ですがよろしくお願い致します。

Aベストアンサー

音楽関係の趣味を薦めてみては?
うちのお爺ちゃんも似たような病気で視力がガタガタになってしまいましたが、その頃からラジオや音楽を楽しむようになりました。
また、叔母のお母さんは全盲ですが、カラオケ教室の先生をやってます。

QC言語のバイナリモードでのfscanf関数の使い方について教えて下さい

C言語のバイナリモードでのfscanf関数の使い方について教えて下さい。

2*2のint型配列バイナリデータを読み込んで、要素一つ一つを出力したいのですが、
fscanfでの書式指定の仕方がよく分かりません。
fscanf(入力元,"???",&入力先)の???の部分はどう指定すればよいのでしょうか?

下記のようなプログラムを書いたのですが、fscanfでデータを読み込めず、
data=0という出力で無限ループに入ってしまいます。

C言語初心者なので、かなり初歩的な質問かと思いますが、
よろしくお願いします。
--------------------------------------
char *fi;
int data;

fi = argv[1]; /* 2x2のint型配列バイナリデータを指定 */

input = fopen(fi,"rb");


while(!feof(input)){
fscanf(input,"%d",&data);
printf("data=%d\n",data);

}
---------------------------------------

C言語のバイナリモードでのfscanf関数の使い方について教えて下さい。

2*2のint型配列バイナリデータを読み込んで、要素一つ一つを出力したいのですが、
fscanfでの書式指定の仕方がよく分かりません。
fscanf(入力元,"???",&入力先)の???の部分はどう指定すればよいのでしょうか?

下記のようなプログラムを書いたのですが、fscanfでデータを読み込めず、
data=0という出力で無限ループに入ってしまいます。

C言語初心者なので、かなり初歩的な質問かと思いますが、
よろしくお願いします。
--------------...続きを読む

Aベストアンサー

int型が32bit、 ファイルとCPUのエンディアンが一致している、として
あえてfscanfを使うなら

fscanf(input,"%4c",(char *)(&data)) ;

だけど、私ならfreadを使います。
fread(&data, sizeof(int), 1, input)

Q緑内障(目の病気)について

緑内障(目の病気)について、具体的にどのような病気なのでしょうか。
市町村の健康診断で緑内障について行っているところはあるのでしょうか。

Aベストアンサー

岐阜県多治見市の市民病院が市民に限り無料検査を行っているようです。
(参考URLのお問い合わせ欄参照)
他の自治体は有料での検査を行っているところが多いようですね。
(予算の関係上仕方ないのでしょうね)
また医師から指示があった場合無料で検査するという様なところを見かけましたが、意味がない様な・・・。(^_^;
緑内障のことを良く知らないまま発病・進行そして失明してしまう方が大勢いますので、できたら無料で、腰の重い市民が少しでも多く検査に訪れてくれる様になったら良いですね。

参考URL:http://www.tbs.co.jp/hanamaru/medama/001025.html

QfscanfでC言語の空欄を読んだ場合の値は?

csvファイルをfscanf関数で読み込み、値の入っている行数を把握したいと考えています。
値が入っていない空欄の値をfscanfで読んだ場合、値は何となるのでしょうか?
NULLと考えて問題ないのでしょうか?

Aベストアンサー

fscanfでどういう書式指定文字列を与えたかにもよるでしょうが、マッチしない変数へは何も代入されません。つまり、fscanfを呼ぶ前と同じ値が保たれます。
また、scanf,fscanf,sscanfはかならず返値の値をチェックする必要があるということを理解されてますか?

あと、初心者はscanfとかfscanfは使わない方が良いですよ。どうしてもscanf系を使いたいなら、1行ずつfgetsして、それに対してsscanfを。

Q右目が痛く、胸?が気持ち悪く、頭も痛いです。病気ですか?風ですか?

右目が痛く、胸?が気持ち悪く、頭も痛いです。病気ですか?風ですか?

Aベストアンサー

とりあえず
目が重要なので眼科で見てもらってください

異常がなければ頭痛外来のある病院で見てもらうといいですよ
頭蓋骨の中なのでどこが原因か一つ一つ探していくしかないです

QC言語の ^= ついて

C言語初心者です。
ソースを読んでいたんですが、
     a[i][j] ^= rk[i][j];
のようなコードが出てきたのですが、^= ってなんですかね?

基本的な様な事ですみませんがお教え願えないでしょうか。
お願いします。

Aベストアンサー

通常の二項演算子の ^ ならわかりますか?
それの代入形式の演算子です。

具体的には「ビットごとのxor (排他的論理和)」を取る演算子です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング