掲示板利用宣言

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

 私は

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

掲示板2

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

No.26890

できる人
投稿者---billy(2006/05/18 21:24:17)


問題文:
引数のファイルに含まれる文字列を、カンマを区切りとして単語に分けて
出力するプログラムを作成する。
実行例:
% cat source
This,is,source.
end.
% gcc -o filebreak kadai.c
% ./filebreak source
-- Line 1 --
Field 1: This
Field 2: is
Field 3: source
-- Line 2 --
Field 1: end.
環境
OS:Linux
コンパイラ名とバージョン: gcc
言語: C





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:できる人 26891 επιστημη 2006/05/18 21:36:28
<子記事> Re:できる人 26917 bear 2006/05/20 18:08:28


No.26891

Re:できる人
投稿者---επιστημη(2006/05/18 21:36:28)


できますけど、それで?



この投稿にコメントする

削除パスワード

No.26892

Re:できる人
投稿者---billy(2006/05/18 21:50:17)


>できますけど、それで?

プログラム教えて


この投稿にコメントする

削除パスワード

No.26893

Re:できる人
投稿者---Blue(2006/05/18 21:57:51)


http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+26856
は放置?

てか、日本語理解できないのでしょうか?
Cannot Japanese understand?
> 掲示板ご利用上の注意
> 課題の丸投げはしません。
> 学校の課題はある程度ご自分の解き方をお示しください。丸投げしますと回答が付かないばかりか非難されて悲しい思いをすることになりかねません。


この投稿にコメントする

削除パスワード

No.26895

Re:できる人
投稿者---billy(2006/05/18 22:01:57)


すみません

include <stdio.h>

int main(int argc,char *argv[])
{
FILE *in_file;
char buf[256];
int line,field;
char c;

in_file = fopen(argv[1],"r"); line=1;
field=1;
printf("-- Line %d --\n",line);
printf("Field %d:%c",field);
while (1){
c=fgetc(in_file);
if(c==EOF)
break;
putchar(c);
if(c==','){
printf("\n");
field++;
printf("Field %d:%c",field);
}
if(c=='\n'){
field=1;
line++;
printf("-- Line %d --\n",line);
printf("Field %d:%c",field);
}


}

fclose(in_file);


}
と考えました
後はどのように構造体を使って","をはぶくかです


この投稿にコメントする

削除パスワード

No.26896

Re:できる人
投稿者---επιστημη(2006/05/18 22:40:07)


>...
>と考えました
>後はどのように構造体を使って","をはぶくかです

題意を取り違えているように思える。
それじゃ単に','を改行に置き換えるだけであり、
単語に切り分けていない。

# 僕が出題者/採点者なら0点。



この投稿にコメントする

削除パスワード

No.26897

Re:できる人
投稿者---もぐりん(2006/05/18 22:41:52)


strtokって知ってる?
過去ログぐらいは見ようよ。



この投稿にコメントする

削除パスワード

No.26901

Re:できる人
投稿者---かずま(2006/05/19 21:03:53)


> strtokって知ってる?
"abc,,def" という入力の処理結果を

Field 1:abc
Field 2:
Field 3:def

としたい場合、strtok を使えますか?



この投稿にコメントする

削除パスワード

No.26898

Re:できる人
投稿者---かずま(2006/05/19 01:59:50)


"ソースの添付は「HTML変換ツール」で字下げします。"
という掲示板利用宣言が守られていません。

> 後はどのように構造体を使って","をはぶくかです

なぜ、構造体を使うのですか?

次のプログラムをよく読んで理解して、変数 n が何を表しているかを
答えてください。
#include <stdio.h>

int main(int argc, char *argv[])
{
    FILE *in_file;  int c, line = 0, field = 0, n = 0;

    if (argc != 2 || !(in_file = fopen(argv[1], "r"))) return 1;
    while ((c = fgetc(in_file)) != EOF)
        switch (c) {
        case '\n': field = 0; /* no break */
        case ',': n = 0; putchar('\n'); break;
        default:
            if (field == 0) printf("-- Line %d --\n", ++line);
            if (n == 0) printf("Field %d:", ++field);
            putchar(c);
            n++;
        }
    fclose(in_file);
    return 0;
}



この投稿にコメントする

削除パスワード

No.26902

Re:できる人
投稿者---billy(2006/05/19 22:03:41)


次に
問題文(含コード&リンク): 第1引数のファイルに含まれる文字列をカンマを区切りとして
単語に分けた上で、第2引数と第3引数のフィールドを入れ替えて出力するプログラムを作成する。
ただし、入れ替えるように指定されたフィールドの一方もしくは両方が存在しなかった場合は
入れ替えを行わないようにする。
実行例:
%cat source
This,is,source.
file,end.
%gcc -o fieldswap kadai.c
%./fieldswap source 2 3
-- Line 1 --
Field 1: This
Field 2: source.
Field 3: is
-- Line 2 --
Field 1: file
Field 2: end.
環境
OS:Linux
コンパイラ名とバージョン:gcc
言語:C
期限: 5/25


この投稿にコメントする

削除パスワード

No.26905

Re:できる人
投稿者---KING・王(2006/05/19 22:48:17)


>次に
> (省略)
>入れ替えを行わないようにする。

だから何?
それがどうしたの?
がんばってね。


この投稿にコメントする

削除パスワード

No.26907

Re:できる人
投稿者---επιστημη(2006/05/19 22:55:03)


>次に
>問題文(含コード&リンク): 第1引数のファイルに含まれる文字列をカンマを区切りとして
>単語に分けた上で、第2引数と第3引数のフィールドを入れ替えて出力するプログラムを作成する。

ほーらやっぱり。

「単に','を改行に置き換えるだけであり、単語に切り分けていない。」

なのでここでつまづく。



この投稿にコメントする

削除パスワード

No.26908

Re:できる人
投稿者---Blue(2006/05/19 23:32:55)


> 期限: 5/25
うざw

ここは、作成依頼をする掲示板ではないですよ。
学習する気がないならば、2chでもいってください。


この投稿にコメントする

削除パスワード

No.26917

Re:できる人
投稿者---bear(2006/05/20 18:08:28)


#include <stdio.h>
#include <string.h>

int main()
{
char buf[BUFSIZ], *ptr, *cp;
int line, field;

for (line = 1; fgets(buf, sizeof(buf), stdin); line++) {
buf[strlen(buf) - 1] = '\0';
printf("-- Line %d --\n", line);
for (field = 1, cp = buf; ptr = strtok(cp, ","); field++) {
printf("Field %d: %s\n", field, ptr);
cp = NULL;
}
}
return 0;
}
ってのはどう


この投稿にコメントする

削除パスワード

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