ショッピングモール  Personal Health / Stress ( Alexander Technique )


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.4902

どうしても合計256文字までしか・・・
投稿者---ペコポン(2005/11/24 10:00:30)


とある、プログラムの一部分です。
私としては、例えば日本語文字400文字入力した場合、
初めの255文字をa[]に、残りをb[]に格納しようとしたいのですが、
このプログラムでやると私のPCでは a, b 合計で256文字(日本語)しか格納できません。([]の中の数字を少なくしても合計256)
どなたか力をおかしください。

#include <stdio.h>

int main(void)
{
char a[511];
char b[511];

fgets(a,sizeof(a),stdin);
fgets(b,sizeof(b),stdin);
puts(a);
puts(b);

return 0;
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:どうしても合計256文字までしか・・・ 4903 RiSK 2005/11/24 10:17:58
<子記事> Re:どうしても合計256文字までしか・・・ 4905 REE 2005/11/24 10:23:32
<子記事> Re:どうしても合計256文字までしか・・・ 4906 mana 2005/11/24 10:34:47
<子記事> Re:どうしても合計256文字までしか・・・ 4931 まきじ 2005/11/24 23:35:36


No.4903

Re:どうしても合計256文字までしか・・・
投稿者---RiSK(2005/11/24 10:17:58)


>題名と投稿者名は具体的に書きます。
>ソースの添付は「HTML変換ツール」で字下げします。
>マルチポスト(多重投稿)はしません。

チャット式C言語入門 - フォーラム(掲示板)


この投稿にコメントする

削除パスワード

No.4905

Re:どうしても合計256文字までしか・・・
投稿者---REE(2005/11/24 10:23:32)


>とある、プログラムの一部分です。
>私としては、例えば日本語文字400文字入力した場合、
>初めの255文字をa[]に、残りをb[]に格納しようとしたいのですが、
>このプログラムでやると私のPCでは a, b 合計で256文字(日本語)しか格納できません。([]の中の数字を少なくしても合計256)
>どなたか力をおかしください。

# 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。

おそらく実行環境による制限でしょう。

1行256文字以上のデータを含むファイルを作って、
リダイレクトで入力してみたらどうなりますか?



この投稿にコメントする

削除パスワード

No.4925

Re:どうしても合計256文字までしか・・・
投稿者---Hermit(2005/11/24 20:26:32)


REE さんに一票


この投稿にコメントする

削除パスワード

No.4906

Re:どうしても合計256文字までしか・・・
投稿者---mana(2005/11/24 10:34:47)


>私としては、例えば日本語文字400文字入力した場合、
>初めの255文字をa[]に、残りをb[]に格納しようとしたいのですが、
気になったのですがどこにこの処理があるのでしょうか・・・?

#私には512バイト分までを2回入力させて
#それぞれを表示しているようにしか見えないのですが・・・
#私の勘違い。。。?


この投稿にコメントする

削除パスワード

No.4931

Re:どうしても合計256文字までしか・・・
投稿者---まきじ(2005/11/24 23:35:36)


>このプログラムでやると私のPCでは a, b 合計で256文字(日本語)しか格納できません。([]の中の数字を少なくしても合計256)

全て 2 バイト文字だとすれば
単純に計算して 255 文字は格納できるかと。

あと、511 バイト以下の入力だと 2 回入力を促されるので

if(a[strlen(a)] == '\0') fgets(b,sizeof(b),stdin);

とすると多少改善されますが、
512 バイト、ピッタシ入力されると 2 回入力を促されますので(^^;

# a を '\0' 以外の文字に初期化しとかないと
# 偶然 '\0' ということもあるので注意。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity