私はCにまったく慣れておらず、自分の問題について見つけた例はうまくいかなかったか、その解決策が何であるかを完全に誤解していました。次のようなデータを含む大きなファイルがあります。
LYS 24L HB2 45.212 39.585 124.457 SC0 0.145 -0.795 0.585 0.157
各行に。すでにstrtokを使用してデータをトークン化しました。必要なのは2番目のフィールドからです。比較のために、24を整数として格納し、Lも比較のためにcharとして格納する必要があります。
使ってみました
sscanf(token[1], "%d%s", number, letter);
しかし、セグメンテーション違反エラーが発生し続けます。また、sscanfをさらに試してみると、(問題をさらに理解するために)単に「LYS」を出力しようとしましたが、プログラムは次のコマンドを使用してLを出力するだけでした。
sscanf(token[0], "%c", &stemp);
letter = stemp;
printf("%c \n", letter);
ただし、%c --->%sを変更すると(文字列全体を取得したい場合)、セグメンテーション違反エラーが再度発生します... sscanfコマンドについて理解できないことがありますか?完全な文字列を読み取れないのはなぜですか?よろしくお願いします!!
ポール