-3

Hi I have been starting to learn a little bit about FILE-pointer and how to open a file,etc.. I'm reading the book C Primer Plus Fifth Edition by Stephen Prata ( SamsPublishing ) and I can't even get the solutions they have to work in my project.

This is how it looks

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int byte;
FILE * source;
int filect;


if (argc == 1)
{
    printf("Usage: %s filename[s]\n", argv[0]);
    exit(EXIT_FAILURE);
}

for (filect = 1; filect < argc; filect++)
{
    if ((source = fopen(argv[filect], "r")) == NULL)
    {
        printf("Could not open file %s for input\n", argv[filect]);    
        continue;
    }
    while ((byte = getc(source)) != EOF)
    {
        putchar(byte);
    }
    if (fclose(source) != 0)
        printf("Could not close file %s\n", argv[1]);
}    
    return 0;
}`

The output is:Usage:(Where my c project is located) filename[s] push down any key to continue... Why is this happening?

4

1 に答える 1

2

argv[0] プログラムを実行するときに、実行可能ファイルがあるディレクトリを参照できます。規格には次のように記載されています。

argc の値が 0 より大きい場合、argv[0] が指す文字列はプログラム名を表します。プログラム名がホスト環境から利用できない場合、argv[0][0] はヌル文字になります。

コマンド ライン経由でアプリケーションに渡される引数には、 からargv[1]までアクセスできますargv[argc - 1]

于 2013-05-24T18:56:30.697 に答える