質問編集履歴

2

追記

2017/05/28 13:36

投稿

strike1217
strike1217

スコア651

test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,125 @@
135
135
  環境を書いておきます。
136
136
 
137
137
  Linux 64bit Debianです。
138
+
139
+
140
+
141
+ [追記]
142
+
143
+ 再度プログラムを最初から作り直しました。
144
+
145
+ ```C
146
+
147
+ #include<stdio.h>
148
+
149
+ #include<string.h>
150
+
151
+
152
+
153
+ void copy(FILE *fp, FILE *fr){
154
+
155
+ char buf[1024];
156
+
157
+ char str[1024];
158
+
159
+ int ch, count = 0;
160
+
161
+
162
+
163
+ /*while(fscanf(fp, "%s", buf) != EOF){
164
+
165
+ sprintf(str, "%s\n", buf);
166
+
167
+ fputs(str, fr);
168
+
169
+ }*/
170
+
171
+
172
+
173
+ while((ch = fgetc(fp)) != EOF){
174
+
175
+ fputc(ch, fr);
176
+
177
+ printf("%c", ch);
178
+
179
+ count++;
180
+
181
+ }
182
+
183
+ printf("\n");
184
+
185
+ printf("%d Bytes\n", count);
186
+
187
+ }
188
+
189
+
190
+
191
+ int main(int argc, char **argv){
192
+
193
+ FILE *fp, *fr;
194
+
195
+
196
+
197
+ if(argc > 0)
198
+
199
+ fp = fopen(argv[1], "r");
200
+
201
+ fr = fopen(argv[2], "w");
202
+
203
+ if(!fp)
204
+
205
+ printf("couldn't open file\n");
206
+
207
+ else{
208
+
209
+ copy(fp, fr);
210
+
211
+ fclose(fp);
212
+
213
+ fclose(fr);
214
+
215
+ }
216
+
217
+ return 0;
218
+
219
+ }
220
+
221
+ ```
222
+
223
+
224
+
225
+ なぜかちゃんと問題なく動いています。
226
+
227
+ ????
228
+
229
+
230
+
231
+ 1回目のプログラムは
232
+
233
+ ```ここに言語を入力
234
+
235
+ void copy(FILE *fp, FILE *fr){
236
+
237
+ char buf[1024];
238
+
239
+ char str[1024];
240
+
241
+ int ch, count = 0;
242
+
243
+
244
+
245
+ while(fscanf(fp, "%s", buf) != EOF){
246
+
247
+ sprintf(str, "%s\n", buf);
248
+
249
+ fputs(str, fr);
250
+
251
+ }
252
+
253
+ [ここに質問の文字数をカウントするプログラムを書いた]
254
+
255
+ }
256
+
257
+ ```
258
+
259
+ ・・・正直、何がダメだったのかさっぱり・・・

1

追記

2017/05/28 13:36

投稿

strike1217
strike1217

スコア651

test CHANGED
File without changes
test CHANGED
@@ -129,3 +129,9 @@
129
129
 
130
130
 
131
131
  ファイルの最後にEOFがあるのは分かるのですが、このファイルをバッファの中に入れた場合、\0はどこに存在するでしょうか??
132
+
133
+
134
+
135
+ 環境を書いておきます。
136
+
137
+ Linux 64bit Debianです。