回答編集履歴
3
追記
answer
CHANGED
@@ -22,4 +22,15 @@
|
|
22
22
|
}
|
23
23
|
|
24
24
|
後略
|
25
|
-
```
|
25
|
+
```
|
26
|
+
|
27
|
+
追記
|
28
|
+
---
|
29
|
+
> 以下のようなfor文を用いたコードを実行したところ、エラーが出てしまいました。
|
30
|
+
|
31
|
+
原因と解決策がもろに書いてあります。**まずは表示されたものを読んでください。**
|
32
|
+
単語は日頃カタカナで使うものばかりですし、文法は中学生レベルです。
|
33
|
+
> trial.c:7:5: error: 'for' loop initial declarations are only allowed in C99 mode
|
34
|
+
> trial.c:7:5: note: use option -std=c99 or -std=gnu99 to compile your code
|
35
|
+
|
36
|
+
オプションを変えるか、for文の初期化部分を少し書き換えれば良いです。
|
2
初期値変更
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
一番簡単な方法は、whileループをforループに置き換えることだと思います。
|
2
2
|
あまりにも愚直ですが、これなら直感的に記述可能ですね。
|
3
3
|
```C
|
4
|
-
for(int i =
|
4
|
+
for(int i = 1; fgets(tmpline, 256, fp); ++i){
|
5
5
|
printf("%d行目: %s", i, tmpline);
|
6
6
|
}
|
7
7
|
```
|
1
追記
answer
CHANGED
@@ -4,4 +4,22 @@
|
|
4
4
|
for(int i = 0; fgets(tmpline, 256, fp); ++i){
|
5
5
|
printf("%d行目: %s", i, tmpline);
|
6
6
|
}
|
7
|
+
```
|
8
|
+
|
9
|
+
なお、コマンドラインから引数を受け取りたい場合は、次のように書けばよいでしょう。
|
10
|
+
```C
|
11
|
+
int main(int argc, char **argv) {
|
12
|
+
if(argc < 3) {
|
13
|
+
printf("USAGE: .exe filename line_num\n");
|
14
|
+
return -1;
|
15
|
+
}
|
16
|
+
|
17
|
+
char *filename = argv[1];
|
18
|
+
int row_num = atoi(argv[2]);
|
19
|
+
|
20
|
+
if(row_num < 1) {
|
21
|
+
return -1;
|
22
|
+
}
|
23
|
+
|
24
|
+
後略
|
7
25
|
```
|