ページ 11

C言語でテキストファイルを開業したい

Posted: 2009年9月16日(水) 20:43
by mint
教えてください。

次のような一行で数字の間にスペースがあるテキストファイルがあります。

12 23 23 53 54 43

これを次のように2列ずつ改行したいのですがやり方がわかりません。

12 23
23 53
54 43

Re:C言語でテキストファイルを開業したい

Posted: 2009年9月16日(水) 21:27
by dic
まず、スペースの空いた一行を配列に格納するのが分からないのか
配列に格納後、2列ずつファイルに出力するアルゴリズムが思い浮かばないのか

何ができないか、どこでつまづいてるかを書いてくれると回答者もでてきそうです

Re:C言語でテキストファイルを開業したい

Posted: 2009年9月16日(水) 21:46
by conio
-----------------------------------------------------------------------------------------
①数字が並んだテキストファイルAを、2行で改行するようにしてテキストファイルBに書き出す。
②数字が並んだテキストファイルAを読み込み、2行で改行するようにして実行画面に表示。
③数字が並んだテキストファイルAを、2行で改行した状態に変更したい。
-----------------------------------------------------------------------------------------

表現が曖昧なので、上記のどれなのか、もしくは上記以外の別の処理なのか分かりません。
普通に改行したいのであれば、「テキストファイルを開いてエンターキーを押せば改行できます。」
という回答もアリになってしまいます。

Re:C言語でテキストファイルを開業したい

Posted: 2009年9月17日(木) 08:08
by mint
表現があいまいでした。すみません。

数字が並んだテキストファイルAを、2行で改行した状態にしたいと考えていますが、直接テキストファイルを開いてエンターキーを押すにはデータ量があまりに多すぎるためできません。

23 32 33 23 43 53 ・・・のような一行を配列に格納するやり方と、配列に格納後、2列ずつファイルに出力するアルゴリズムが 分かりません。

もしくは他の方法でもよいのですが、教えてください。よろしくお願いします。

Re:C言語でテキストファイルを開業したい

Posted: 2009年9月17日(木) 09:43
by たかぎ
> 23 32 33 23 43 53 ・・・のような一行を配列に格納するやり方と、配列に格納後、2列ずつファイルに出力するアルゴリズムが 分かりません。

そんな難しく考える必要はありません。
#include <stdio.h>

int main(void)
{
	int n = 0;
	int c;

	while ((c = getchar()) != EOF)
	{
		if (c == ' ' && ++n == 2)
		{
			n = 0;
			c = '\n';
		}
		putchar(c);
	}
	return 0;
}
こんな感じで十分でしょう。