Написание программы на C, которая принимает пользовательский ввод и должна найти введенный файл? - PullRequest
1 голос
/ 20 октября 2011

Я должен использовать цикл for для ввода ввода. Не уверен, почему цикл for?Я имею в виду, что все, что делает эта программа, продолжает просить пользователя ввести имя файла, добавление начального поиска и количество байтов для чтения.

Например, ввод должен выглядеть следующим образом:

% myprog Введите имя файла: datafile Начать поиск: 0 Байт для чтения: 65

Мой размер блока в этой программе равен 20, поэтому вывод будет:

"m / n / files / program / test / datafile" block 0 read - 20 байтов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 "block 0 read - 5 bytes 01234

Так что я не уверен, почему / как я бы использовал цикл for для запроса ввода пользователя.Все, что мы делаем, это постоянно просим пользователя вводить разные файлы и искать диапазоны.В задании не сказано, где прекратить спрашивать.

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

Цикл 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);
  }
}
0 голосов
/ 20 октября 2011

Напишите что-то вроде:

for(int i; i<2; i++)
{
    //do your task
    i--;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...