C言語のプログラム中に使うsystem()関数に変数を使う場合
system("sort < a.txt |uniq >aa.txt");
という関数を使うと
テキストファイル a.txt は編集(sort,uniqにより)され aa.txt となるのですが
このファイル名を変数として扱いたいので
char str[255];
for(z=0; z<255; z++){
sprintf(str,"sort < %d.txt |uniq >0%d.txt", z, z);
system(str);
}
という形にすると
0.txt → 00.txt 1.txt → 01.txt と255.txtまで編集されると思ったのですが
編集後のファイルが白紙で現れてしまいます。
system("sort < a.txt |uniq >aa.txt");
のファイル名に変数を扱い
複数のファイルの編集をするためには
どのようなプログラムを作成すると良いのでしょうか?
ご回答よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
一度、systemは使わず、
sprintf(str,"sort < %d.txt |uniq >0%d.txt", z, z);
ではなく
printf("sort < %d.txt |uniq >0%d.txt\n", z, z);
で出力が正しいことを確認した上で
a.out | sh
で実行するとか
↓のようにシェルスクリプトで作るとか
#!/bin/sh
n=0
while [ n -le 255 ]
do
sort < $n.txt |uniq > 0$n.txt
n=`expr $n + 1`
done
ご回答ありがとうございます。
自分が思っていた以上に
難しいやり方をしていたんだと感じました。
教えて頂いたやり方を参考に
理解したいと思います。
No.4
- 回答日時:
たとえば 0.txt ファイルが
111
000
222
555
000
444
222
000
更に 1.txtファイルが
123
012
234
567
012
456
234
012
とするとき、次のプログラムを実行し、作成された 00.txt ならびに 01.txt を確認してみてください。
なお、エラーチェックはしていないので、付加してください。
/* source file: s310.c
compile: gcc s310.c
execution: ./a.out txt 2
ファイル名 txt およびファイル数 2 は、環境に応じて変更のこと。
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int z, n;
char str[255], *c;
n = atoi(argv[--argc]);
c = argv[--argc];
for(z = 0; z < n; z++) {
sprintf(str, "sort -u <%d.%s >%02d.%s\n", z, c, z, c);
// printf(str);
system(str);
}
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- iOS ファイルの名前変更 2 2022/08/11 20:47
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
systemの戻り値を取得する方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
多数のサブディレクトリ内のフ...
-
forfilesで検索したファイルを...
-
Windowsのバッチファイルを利用...
-
拡張子を元に戻す
-
VBSでフォルダ内のテキストファ...
-
バッチにてフォルダ内ファイル...
-
テキストファイルで提出とは?
-
複数のテキストファイルを1つに...
-
バッチファイルについて
-
accessでSQL文を使ってcsvファ...
-
フルパスの中にワイルドカード...
-
リモートのファイル存在確認
-
COPYコマンドで結合すると余計...
-
バッチファイルで文字列削除に...
-
実行時にコモンダイアログのフ...
-
【Excel】 VBAを使って毎回名前...
-
ファイル名の一部をbatで変更し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.txtではなく.logの方が良いの...
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
拡張子を元に戻す
-
COPYコマンドで結合すると余計...
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
renameコマンドについて
-
forfilesで検索したファイルを...
-
バッチファイル 複数ファイル...
-
Windowsのバッチファイルを利用...
-
テキスト(txt)→ワード(docx)へ...
-
txtとはWordでなんですか?
-
psqlでエラーログをとりたい
-
UWSCでテキストファイルを開い...
-
バッチファイルで文字列削除に...
-
ファイル内容の修正、行削除に...
-
accessでSQL文を使ってcsvファ...
-
UWSCでファイルを開く方法
おすすめ情報