質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

452閲覧

文字列を逆にして別のファイルに出力する

Reen

総合スコア11

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2019/06/11 10:29

編集2019/06/11 12:26

ファイルから文字列を読み込み、並びを逆にして別のファイルに出力するプログラムを作りたいのですが、何となくイメージは出来てはいるものの、for文の所からめちゃくちゃになっていて、どういうことをすればいいのかを教えてほしいです。

C

1#include <stdio.h> 2#include <stdlib.h> 3int main(void) 4{ 5 FILE *fp_test = fopen("test.txt", "r"); 6 FILE *fp_sample; 7 char *p = "sample.txt"; 8 fp_sample = fopen(p, "w"); 9 int i, m; 10 11 for (*(fp_test + i) = '\0'; *(fp_test + i) >= 0; *(fp_test + i)--) { 12 m = fputc(*fp_test + i, fp_sample); 13 } 14 15 16 return 0; 17}

Visual studio 2017

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dice142

2019/06/11 10:41 編集

質問はエラー文の解決の仕方ですか? それともfputsの使い方の解説ですか?
episteme

2019/06/11 11:04

void reverse(char* str) { strを裏返す } を実装すれば、そいつを通したのちfputsすればいいんでね?
mather

2019/06/11 11:12

for文がわけのわからないことになってませんか?そもそも i が初期化されてないし…。 コンパイルエラーが出てるならそれも質問に書くべきですし、「危うい」では何を気にしているのかわからないので「fputcの使い方がわからない」など具体的に質問を書いてください。
pepperleaf

2019/06/11 13:49

epistemeさん、 > void reverse(char* str) { strを裏返す } を実装すれば、 そう思うのですが、ファイルサイズの考慮が必要。10Gbyteでも malloc()でOK ? まあ、10K位のバッファでお尻から読み書き? もっとも提示のコード見る限りだと、ファイルアクセスも大分、問題有り。 (と言うか、出来てない)
cateye

2019/06/11 14:14

>ファイルサイズの考慮が必要 行単位の処理じゃないのかなぁ? 1行10Gは考えられないんだけど?
kazuma-s

2019/06/11 14:31

------------------------------------------------- abc def ghi 12345 6789 xyz ------------------------------------------------- test.txt が上記の場合、sample.txt はどのような結果を期待していますか? スペースや改行で区切られた個々の文字列を逆にする ------------------------------------------------- cba fef ihg 54321 9876 zyx ------------------------------------------------- 行内の文字列を逆にする ------------------------------------------------- ihg fed cba 9876 54321 zyx ------------------------------------------------- ファイル全体の文字列を逆にする ------------------------------------------------- zyx 9876 54321 ihg fed cba ------------------------------------------------- ファイルの行単位で文字列を逆にする ------------------------------------------------- xyz 12345 6789 abc def ghi -------------------------------------------------
ttyp03

2019/06/12 01:39

まずはファイルを読み込む処理を作りましょうよ。それが出来るだけの技術がないのにやることが飛躍しすぎ。順番にやりましょう。
guest

回答1

0

何となくイメージ

を書き出す等して, より細かく, より具体的な処理に落として行っては如何でしょうか.
その際は for 文での省力化等せず, まずは愚直なコード(ワーク変数を使う等)にすることを意識されると良いかと思います.

投稿2019/06/11 12:46

jimbe

総合スコア12639

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問