ファイル操作 – プログラミング – Home

通知
すべてクリア

ファイル操作


keiko
 keiko
(@keiko)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

ファイル操作についてなんですが、
指定されたプログラム名と表示行数を
コマンドライン引数から、与えたいのですが
表示行数は与えられるのですが、プログラム名
を与えることができません。
どなたか指導お願いします。
例 プログラム名 smp.exe
テキストファイル test.txt
表示行数 5行 なら
smp -5 test.txtのようにコマンドライン引数
   から与えられるようなもの。
   テキストファイルが5行以下ならすべて表示
------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char **argv )
{
FILE *fp;
char fname[64];
int count;
int line;
char buf[1024];

if ( argc < 3 || argv[1][0] != '-' )
{
printf(Usage: %s -n file\n, argv[0] );
return( 10 );
}
line = atoi( &argv[1][1] );

fp = fopen( argv[2], r );
if ( fp == NULL )
{
printf([%s] open error.\n, argv[2] );
return( 20 );
}
for ( count = 0 ; count < line ; count++ )
{
if ( fgets(buf, sizeof(buf), fp) == NULL )
{
break;
}
fputs( buf, stdout );
}
fclose( fp );
return( 0 );
}


引用解決済
トピックタグ
ストラウストラップ
 ストラウストラップ
(@ストラウストラップ)
ゲスト
結合: 22年前
投稿: 2
 

質問の意図がよくわからないのですが

>コマンドライン引数から、与えたいのですが
>表示行数は与えられるのですが、プログラム名
>を与えることができません。

プログラム名を与えないでどうやって実行してるのでしょう?


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

>>smp -5 test.txt<<
このテキストの「smp」は「smp.exe」で提示されているソースプログラムを
コンパイルしたものではないのでしょうか?

「smp -5 test.txt」とコマンドラインをたたいて実行できているのではないのですか
質問の意図・意味が理解しにくいのですが

CreateProcessについて聞いていますか?


返信引用
keiko
 keiko
(@keiko)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

smp -5 test.txtと与えたら
argv[0]のファイル名だけが実行画面に表示されて、
指定した行数のテキストFが表示されないんです。
説明不足ですいません。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

>if ( argc < 3 || argv[1][0] != '-' )
>{
> printf(Usage: %s -n file\n, argv[0] );
> return( 10 );
>}

> printf(Usage: %s -n file\n, argv[0] );
ここのことですね

printf(Usage: %s -%d %s\n, argv[0],atoi( &argv[1][1] ),argv[2] );
こんなのでだめですか?


返信引用
しっぽ
 しっぽ
(@しっぽ)
ゲスト
結合: 22年前
投稿: 10
 

> smp -5 test.txtと与えたら
> argv[0]のファイル名だけが実行画面に表示されて、
> 指定した行数のテキストFが表示されないんです。
> 説明不足ですいません。

まだ説明になっていないように思えます。落着いて
正確に表現してはいかがですか。
あなたのコードにはargv[0]のファイル名だけを
出力するような個所はどこにも見当たりません。

keiko 2003/02/23(日) 08:20:38 のコードと
keiko 2003/02/23(日) 09:47:30 の状況説明から
得られる解は、test.txtファイルの中味がsmpである
となってしまいます。


返信引用
.
 .
(@.)
ゲスト
結合: 23年前
投稿: 37

返信引用
...
 ...
(@...)
ゲスト
結合: 22年前
投稿: 113

返信引用
しっぽ
 しっぽ
(@しっぽ)
ゲスト
結合: 22年前
投稿: 10
 

見て来ました。発信者が各スレッドを有機的に結び付ける
才能があるならば、私はマルチポストを否定しません。

今回はプロジェクト→設定→デバック→プログラムの引数に
abc -5 test.txt
と入力してあったというオチのようです。なかなか奥の深い
質問でした。

私は、現象からこのスレッドの質問になる過程を知りたかった
ので、これで目的は果たされました。.さん... さんありがとう
ございます。面白い質問をして下さったkeiko さんにも感謝。


返信引用
ストラウストラップ
 ストラウストラップ
(@ストラウストラップ)
ゲスト
結合: 22年前
投稿: 2
 

>argv[0]のファイル名だけが実行画面に表示されて、
じゃなくて
Usage: smp -n file
と表示されるはずですよね。
もうちょっと正確に表現してもらいたいものです・・・


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 見て来ました。発信者が各スレッドを有機的に結び付ける
> 才能があるならば、私はマルチポストを否定しません。

その才能はまず期待できんでしょう。
そんなフォローをできるヒトはそれが甚だしく面倒であることに
気づくでしょうから、やっぱりマルチポストは避けるでしょうね。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

マルチポストの討議になりそうなので「雑談掲示板」に行きませんか
このスレッドは質問者本人見てなさそうだし?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました