编写一个接受用户输入并应该找到输入文件的 C 程序?

发布于 2024-12-11 02:38:48 字数 570 浏览 1 评论 0原文

我应该使用 for 循环来使用输入 - 不知道为什么要使用 for 循环?我的意思是这个程序所做的就是继续要求用户输入文件名,开始查找添加以及要读取的字节数。

例如,输入应如下所示:

%myprog 输入文件名:数据文件 开始查找:0 要读取的字节数:65

此程序中的块大小为 20,因此输出为:

“m/n/files/program/test/datafile” block 0 read - 20 bytes 01234567890123456789 “m/n/files/program/test/datafile”块 1 读取 - 20 字节 01234567890123456789 “m/n/files/program/test/datafile”块 3 读取 - 20 字节 01234567890123456789 “m/n/files/program/test/datafile”块 0 读取 - 5 个字节 01234

所以我不确定为什么/如何使用 for 循环来请求用户输入。我们所做的就是继续要求用户输入不同的文件并查找范围。作业没有说明在哪里停止询问。

I am supposed to use a for loop for use input
-Not sure why a for loop? I mean all this program does is keep on asking the user to input a filename, a starting seek adds and the # of bytes to read off.

For example, the input should look like:

%myprog
Enter filename:datafile
Start seek:0
Bytes to read:65

My block size in this program is 20, so the output would be:

"m/n/files/program/test/datafile" block 0 read - 20 bytes
01234567890123456789
"m/n/files/program/test/datafile" block 1 read - 20 bytes
01234567890123456789
"m/n/files/program/test/datafile" block 3 read - 20 bytes
01234567890123456789
"m/n/files/program/test/datafile" block 0 read - 5 bytes
01234

So I am not sure why/how I would use a for loop to ask for user input. All we are doing is keep on asking the user to enter different files and seek ranges. The assignment does not say where to stop asking.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

玩心态 2024-12-18 02:38:48

for 循环是 C 中的通用循环结构。

以下循环是等效的。

FOR LOOP

int n;
for(n = 0; n < 10; n++) {
  foo(n);
}

WHILE LOOP

int n;
n = 0;
while(n < 10) {
  foo(n)
  n++;
}

假设您知道这一点,您可以编写以下相当迟钝的代码,尽管它可能会让人皱眉:

#include <stdio.h>
int main(void) {
  char resp[BUFSIZ];
  for(scanf("%s", resp) ;
      strcmp(resp,"done") != 0 ;
      scanf("%s", resp) {
    printf("%s\n", resp);
  }
}

The for loop is the universal looping construct in C.

The following loops are equivalent.

FOR LOOP

int n;
for(n = 0; n < 10; n++) {
  foo(n);
}

WHILE LOOP

int n;
n = 0;
while(n < 10) {
  foo(n)
  n++;
}

Assuming you know this, you could write the following rather obtuse code, although it might be frowned upon:

#include <stdio.h>
int main(void) {
  char resp[BUFSIZ];
  for(scanf("%s", resp) ;
      strcmp(resp,"done") != 0 ;
      scanf("%s", resp) {
    printf("%s\n", resp);
  }
}
攀登最高峰 2024-12-18 02:38:48

写一些类似的东西:

for(int i; i<2; i++)
{
    //do your task
    i--;
}

Write something like:

for(int i; i<2; i++)
{
    //do your task
    i--;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文