- ベストアンサー
ファイルから読み出し
ファイルを読み込んで画面表示するプログラムを作っているのですが、ファイルの扱い?がよくわかりません。 以下のフォーマット・書式とします。 ・フォーマット 番号__氏名__年齢 ・書式 番号:半角3桁まで 氏名:半角/全角問わずで半角20文字/全角10文字まで 年齢:半角2桁まで この場合に、以下のようにするとこの行で止まってしまいます。 特にエラーが出ていないのです。何故なんでしょう? fscanf(*fp,"%3d %20s %2d",&p->no,&p->name,&p->age);
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (9)
- Lchan0211
- ベストアンサー率64% (239/371)
- postal0x02
- ベストアンサー率42% (24/57)
- arain
- ベストアンサー率27% (292/1049)
- arain
- ベストアンサー率27% (292/1049)
- D-Matsu
- ベストアンサー率45% (1080/2394)
- arain
- ベストアンサー率27% (292/1049)
- postal0x02
- ベストアンサー率42% (24/57)
- postal0x02
- ベストアンサー率42% (24/57)
- arain
- ベストアンサー率27% (292/1049)
関連するQ&A
- Excelでバイト数の最大数が決まったデータを作りたいんです!
上手く説明出来ないんですが・・。 エクセルで、項目それぞれにバイト数の最大数が決まったデータを作りたいんです。 例えば ◆職員番号・・・バイト数12(半角) 職員番号は8桁なので、その後ろに残り12バイトまでの半角パディング。 ◆氏名 ・・・ バイト数16(全角8字まで) 全角8文字以内なら、その後ろに残り8文字までの全角パディング。 全角8文字を超す氏名なら、8文字で切る。 ◆カナ ・・・ バイト数58(半角) 半角カナ文字で残りの58バイトまで半角パディング。 *これをcsvに変換します! これを文字列だけ打ち込んだら、自動で最大バイト数まで半角・全角を埋めるようにすることは出来るでしょうか? また、氏名のところのように自動で8文字までの入力しか出来なくするようにすることは出来るでしょうか? 説明が下手で申し訳ないんですが、おわかりになる方ご教授下さい。 よろしくお願いします!!
- ベストアンサー
- オフィス系ソフト
- 全角半角を意識した文字分割
A列 B列 C列 D列 E列 あいうえおかきくけこ あ いう えお か アイウエオカキクケコ アイウ エオ カキ ク あイウえオかきくけこ あ イウえ オか き 先ほど同じような質問を一度しているのですが、 A列に全角半角混在のテキスト項目があります。 B列、C列、D列、E列に以下のルールで分割したいのですが、 Excel関数で 実現可能でしょうか? 可能な場合は式をご教授して頂けますでしょうか。宜しくお願い致します。 ※全角をバイト数指定で分割して文字化けしないように全角半角を考慮して分割した いと考えております。 B列(半角3文字) A列3桁目が半角の場合は半角3文字 A列3桁目全角の場合は半角2文字(全角1文字) C列 (半角4文字) A列4桁目が半角の場合は、左端4桁目~半4文字分 A列4桁目が全角の場合は、左端3桁目~半角4文字 D列(半角4文字) A列7桁目が半角の場合は、左端7桁目~半4文字分 A列7桁目が全角の場合は、左端6桁目~半角4文字 E列(半角2文字) A列11桁目が半角の場合は、左端11桁目~半2文字分 A列11桁目が全角の場合は、左端10桁目~半角2文字
- ベストアンサー
- オフィス系ソフト
- [Ruby]外部ファイルの全角文字削除ができない原因を教えてください
Rubyでの全角文字削除について質問です。 (環境:Windows XP,cygwin) コマンドライン引数で指定した外部ファイルを読み込んで全角文字を削除しようとすると、 全角文字が削除できないのですが、この原因がわかる方がいらしゃいましたら教えてください。 ・外部ファイル(Shift_JIS,改行=CR+LF) "7桁の| 郵便番号を| 入力して|,ください" ・Rubyスクリプト(cygwin上のため、EUC-JP,改行LF) #file.each_line do |line| # line.gsub!(/ /,'') # line.gsub!(/,/,'') # line.gsub!(/|/,'') #end 全角スペース、全角カンマ、全角パイプラインすべて削除できません。 半角文字は上記方法で削除できます。 しかし、スクリプト中に以下のような記述をすると、 #text = "7桁の 郵便番号を 入力して,ください" #print text.gsub(/ |,/,'') 「7桁の郵便番号を入力してください」と全角文字が削除されて表示されます。 教えてください。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- CSVファイルの分析について
CSVファイルで3MB程の容量のファイルが30個近くあります。 このファイルの分析をしないといけないのですが 手作業では無理があるため、マクロなり、関数なりで 対処できないものかと思いご相談させて頂きます。 分析の流れとしては CSVファイルをExcelで開き、特定の文字(3桁か4桁の数字)が 入っているセルを探し、どの数字が何回使われたかをカウントします。 数字は3桁もしくは4桁ですが、全角・半角は統一されていません。 全角のものもあれば、半角のものもあります。 1111が1回、222が4回といった感じです。 みなさんのお知恵をお貸しいただけないでしょうか。 よろしくお願いします。
- 締切済み
- その他MS Office製品
- 汎用のファイル読み取り関数について
ファイルデータを読み取る関数を作成しています. Data *ReadFile (const char *name, Data *data, const char *format, ...) というプロトタイプを考えます. ここでDataはプログラマが自由に定義できる構造体です. この構造体の一例を示すと, typedef struct { int id; /* ID番号 */ char name[32]; /* 氏名 */ char sex; /* 性別 */ int age; /* 年齢 */ char addr[64]; /* 住所 */ } Data; という具合です. 読み取るファイルの書式はプログラムの種類によって 異なりますが, fopen関数やfclose関数を使用するといった 手順は全く同一です. そこで上記のような汎用的な ファイル読み取り関数を書こうと思ったのですが 読み取り部分fscanfの処理をどのように行えばよいか 分かりません. formatで指定する書式は'%'を区切りとする複数の文字列に 分け(例えばformat="%s %d"であればbuffer="%s \0%d\0"), char型のポインタ配列bpで参照できます. 可変引数の部分で 構造体のメンバを指定できるようにしたいのですが... ちなみに呼出側では Data *data; data = ReadFile ("a.txt", data, "%d %s %c %d %s", data->id, ...); というようにしたいと考えています. ソースを以下に示します. どなたかお力をお貸しくださいませ. Data *ReadFile (const char *name, Data *data, const char *format, ...){ FILE *stream; size_t data_size = 1024, buffer_size = 128, bp_size = 16; short i, j, k; char *buffer; char **bp; /* buffer pointer */ va_list ap; /* argument pointer */ (省略) va_start (ap, format); i = 0; k = 0; while (!feof (stream)) { fscanf (stream, bp[i], va_arg (ap, ????)); (省略) } va_end (ap); }
- ベストアンサー
- C・C++・C#
- アクセス2010でのファイル保存方法
アクセス2010で、UTF8形式のテキストを開き、レコードごとにデータを 抽出する際でのご質問がございます。 指定された県の郵便番号を、レコードを抽出して、ファイルで保存する際、テキスト型文字コードUTF8に指定して保存したのですが、レコード内のフィールド文字列でスペースを含んだ半角文字14桁と全角文字8桁の混合文字列が、保存後、前半部分の半角文字のスペースがなくなってしまいます。 下記のような例がイメージとなります。 例 ァァァ 亜亜亜亜亜亜亜亜 ↓ ァァァ 亜亜亜亜亜亜亜亜 (半角領域のスペースが1桁しかなくなってしまう) のようになってしまうのですが なにか良い保存方法はありますでしょうか? どうぞよろしくお願いします。
- ベストアンサー
- その他(データベース)
- Javaプログラミングについて
コマンドラインにキーボードで入力した文字をそれぞれの仕様に合わせて作るんですが文字の判別方法が分からなくて困ってます。 (1)半角英数字記号文字10桁(固定) (2)全角文字、半角禁止、250文字まで登録可能@必須 (3)全角文字、半角禁止、250文字まで登録可能@電話番号 (4)半角英数字記号文字ー必須。8桁 (5)全角、半角英数字記号文字混在可。500文字(半角換算)まで登録可能最後の全角文字で、501バイトにならないように注意 以上の5つが仕様です。どなたか教えて下さい。
- 締切済み
- Java
- Access Findfirst 半角全角空白
Access2003のVBAでFindfirstを使用して、下記コードで番号&氏名データ検索をしています。 情報.FindFirst "[番号] ='" & 名簿![番号] & "' AND [氏名] ='" & 名簿![氏名] & "'" 「001」&「日本 太郎」(姓名間全角空白)が存在するか調べた所、 「001」&「日本 太郎」(姓名間半角空白)がヒットしました。 番号は一致してますが、氏名は姓名間の空白が半角、全角と異なるのにヒットしました。 Findfirstは文字列の全角半角空白の判別はしないのでしょうか? 判別するにはどうすればよいでしょうか? 教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- EXCELで大文字から小文字へ変換したい
EXCEL2000の住所録データを筆王の住所録へ変換しているのですが、うまくいきません。(-_-;)それは、郵便番号と電話番号が大文字(全角)になっていて、筆王の郵便番号の桁数でいくと半角で10桁となっています。EXCELのデータが大文字のため入りきれないのです。EXCELの大文字数字(全角)をどうにかして小文字数字(半角)にできないものか?データが多いもので、悩んでいます。どなたかお助けくださいませm(__)m
- ベストアンサー
- オフィス系ソフト
- EPSON社製品LP-S6160のトナー上部にある黒いフィルムが破れてしまった場合の対処方法について教えてください。
- LP-S6160のトナー上部には黒いフィルムがあり、それが破れるとトナーの動作に問題が生じる可能性があります。破れたフィルムを修理する方法や代替品について知りたいです。
- EPSON社製品のLP-S6160のトナー上部にある黒いフィルムが破れてしまった場合、フィルムを交換することが必要です。正しい交換方法や適切な代替品についてご教示いただけますか?
お礼
氏名の後の年齢が固定値(2桁数字)なので それを判断基準に入れてそうでなければ半角+名前の続きと 認識させて前の文字列につけるというのはどうでしょうか (まだ試していないです) そもそもファイルに登録されているということは それが正しい値である、という裏付けになるので 半角後の氏名が数字2桁で無い限りは氏名であると断言 出来る事になります。 まだ作成していませんが、新規で「番号__氏名__年齢」を 追加する際に、番号や年齢には入力制限を課すため、 入力保存したファイルを読み込む時には正しい値が ファイルに格納されているのは保証されると思ってます。