为 git 存储库制作一个 c 文件
Making a c file for a git repository
我对 Ubuntu 和 PuTTY 以及将 C++ 文件放入其中非常陌生,但我的 C++ 文件有问题。我需要程序做的是从 Ubuntu 端输入一个字符串,放入 C++ 程序中,让它计算输入的字符串数量,然后像这样发回:
./myfile Supplying arguments now
Argument #0: ./myfile
Argument #1: Supplying
Argument #2: arguments
Argument #3: now
Number of arguments printed: 4
所以,当我 运行 我的程序在下面时,程序会一直运行下去,我无法单步执行它。是什么原因造成的?为什么 and/or 我该怎么做才能解决这个问题?
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int count = 0;
while (*argv[argc] != NULL)
{
count++;
}
cout << count << endl;
system("PAUSE");
return 0;
}
您的代码是一个无限循环,因为您的 while
循环总是检查相同的条件。那是因为 argc
永远不会更改您的代码。
你想写的是while (*argv[count] != NULL)
。但是,你的意思也不对。
- C 不检查数组边界。当您读取超过数组边界时,您不一定会遇到 0 值。你会在那个地方读取内存中的随机垃圾数据。
- 不需要自己去数参数的个数,因为you already have it in the variable
argc
.
因此,迭代所有命令行参数的更好解决方案是 for
循环,该循环将 count
从 0
递增到 argc
。
我对 Ubuntu 和 PuTTY 以及将 C++ 文件放入其中非常陌生,但我的 C++ 文件有问题。我需要程序做的是从 Ubuntu 端输入一个字符串,放入 C++ 程序中,让它计算输入的字符串数量,然后像这样发回:
./myfile Supplying arguments now
Argument #0: ./myfile
Argument #1: Supplying
Argument #2: arguments
Argument #3: now
Number of arguments printed: 4
所以,当我 运行 我的程序在下面时,程序会一直运行下去,我无法单步执行它。是什么原因造成的?为什么 and/or 我该怎么做才能解决这个问题?
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int count = 0;
while (*argv[argc] != NULL)
{
count++;
}
cout << count << endl;
system("PAUSE");
return 0;
}
您的代码是一个无限循环,因为您的 while
循环总是检查相同的条件。那是因为 argc
永远不会更改您的代码。
你想写的是while (*argv[count] != NULL)
。但是,你的意思也不对。
- C 不检查数组边界。当您读取超过数组边界时,您不一定会遇到 0 值。你会在那个地方读取内存中的随机垃圾数据。
- 不需要自己去数参数的个数,因为you already have it in the variable
argc
.
因此,迭代所有命令行参数的更好解决方案是 for
循环,该循环将 count
从 0
递增到 argc
。