3

ここまでは、Visual C++ でデバッグ コマンドを使用して、C コードの出力を正しく表示できました。ただし、スクリプトがメイン関数のパラメーターに依存している場合 (例: / argcargv)、デバッガーは両方のパラメーターを無視し、初期化されていないかのように処理するようです。

たとえば、次のコードでは、出力は常にprintf("Usage: find pattern\n");です。

#include <stdio.h>
#include <string.h>
#define MAXLINE 1000

int getline(char *line, int max);

/* find: print lines that match pattern from 1st arg */
main(int argc, char *argv[])
{
    char line[MAXLINE];
    int found = 0;

    if (argc != 2)
        printf("Usage: find pattern\n");
    else
        while (getline(line, MAXLINE) > 0)
            if (strstr(line, argv[1]) != NULL) {
                printf("%s", line);
                found++;
            }
    system("Pause");
    return found;
}

int getline(char *s, int lim)
{
    int c;
    char *i = s;

    while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
        *s++ = c;
    if (c == '\n')
        *s++ = c;
    *s = '\0';
    return s-i;
}

argc と argv が使用されるようにコードを実行するにはどうすればよいですか? おそらく、Visual C++ 以外の IDE を使用する必要がありますか?

4

0 に答える 0