前提・実現したいこと
私はlinuxのgccプログラミングを勉強しているものです。いまは「ふつうのLinuxプログラミング」という本を使っているのですが、6章の練習問題のcatコマンドを作る際にタブ文字('\t')を\tという2文字、改行を「'$'+改行」の2文字として置き換えるプログラムを作るところでつまずいてしまいました。
発生している問題・エラーメッセージ
./cat3.c: 行 4: 予期しないトークン ’(' 周辺に構文エラーがあります
./cat3.c: 行 4: 'static void do_cat(FILE *f);'
はじめは、
bash: ./cat3.c: 許可がありません
というメッセージだったので777で全てに権限をつけたら上のようなことになってしまいました。
該当のソースコード
#include <stdio.h>
#include <stdlib.h>
static void do_cat(FILE *f);
int
main(int argc, char *argv[])
{
if (argc == 1) {
do_cat(stdin);
}
else {
int i;
for (i = 1; i < argc; i++) { FILE *f = fopen(argv[i], "r"); if (!f) { perror(argv[i]); exit(1); } do_cat(f); fclose(f); } } exit(0);
}
static void
do_cat(FILE *f)
{
int c;
while ((c = fgetc(f)) != EOF) { switch (c) { case '\t': if (fputs("\t", stdout) == EOF) exit(1); break; case '\n': if (fputs("$\n", stdout) == EOF) exit(1); break; default: if (putchar(c) < 0) exit(1); break; } }
}
回答1件
あなたの回答
tips
プレビュー