Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227
1

Файл как параметр командной строки

17.06.2012, 14:41. Показов 1139. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста исправить ошибку и запилить название файда как параметр командной строки.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
void find() {
    char fname[20] = FNAME;
    FILE *f;
 
    char obr[15]; // фамилия - образец для поиска в БД
 
    // найденная информация
    char nom[2]; // Номер
    char fam[15]; // фамилия
    char name[15]; // имя
    char tel[9]; // номер телефона
 
    int n = 0; // количество записей, удовлетворяющих запросу
 
    puts("\nSearch the database");
 
    // Открыть файл в режиме чтения (r) текста (t)
    if ((f = fopen(fname, "rt")) == NULL) {
        printf("Error opening the file %s", fname);
        getch();
        return;
    }
 
    // получим данные от пользователя
    printf("Lastname ->");
    scanf("%s", &obr); // образец для поиска в БД
    while (!feof(f)) {
        fscanf(f,"%s %s %s %s", &nom, &fam, &name, &tel);
        if (fam == obr) {
            printf("%s %s %s %s", nom, fam, name, tel);
            n++;
        }
    }
    if (n)
    printf("Records found: %i", n);
    else
    printf("Data about the %s missing in the database", obr);
 
    fclose(f); // закрыть файл
 
    puts("\nPress to end <Enter>");
    getch();
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2012, 14:41
Ответы с готовыми решениями:

Как в пакетный файл *.bat передать параметр из командной строки для Java
Добрый вечер. Есть программка на Java. Но она тут постольку, поскольку. Вопрос как после запуска...

Как вычислить параметр командной строки?
Суть. Нужно сделать, чтобы скрипт определял запущены ли регламентные задания в 1с в отдельном...

Нужно вывести в окно текст, который подали, как параметр командной строки
Приветствую господ форумчан, возникла такая проблема) нужно вывести в окно винапи текст, который...

Параметр командной строки
Здрасте, здрасте!! Вопрос такой есть код: LPWSTR *szArglist; int nArgs; int i; ...

3
349 / 299 / 165
Регистрация: 15.03.2012
Сообщений: 651
Записей в блоге: 1
17.06.2012, 16:36 2
Я не проверял, у тебя дана только find() функция.
Но так должно работать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <stdio.h>
#include <stdlib.h>
 
void find(char *);
 
int main(int argc, char *argv[])
{
    if (argc!=2) {
        puts("use: programm <file>");
        exit(1);
    }
    
    find(argv[1]);
    
    return 0;
}
 
void find(char *fname) {
    FILE *f;
 
    char obr[15]; // фамилия - образец для поиска в БД
 
    // найденная информация
    char nom[2]; // Номер
    char fam[15]; // фамилия
    char name[15]; // имя
    char tel[9]; // номер телефона
 
    int n = 0; // количество записей, удовлетворяющих запросу
 
    puts("\nSearch the database");
 
    // Открыть файл в режиме чтения (r) текста (t)
    if ((f = fopen(fname, "rt")) == NULL) {
        printf("Error opening the file %s", fname);
        getch();
        return;
    }
 
    // получим данные от пользователя
    printf("Lastname ->");
    scanf("%s", &obr); // образец для поиска в БД
    while (!feof(f)) {
        fscanf(f,"%s %s %s %s", &nom, &fam, &name, &tel);
        if (fam == obr) {
            printf("%s %s %s %s", nom, fam, name, tel);
            n++;
        }
    }
    if (n)
    printf("Records found: %i", n);
    else
    printf("Data about the %s missing in the database", obr);
 
    fclose(f); // закрыть файл
 
    puts("\nPress to end <Enter>");
    getch();
}
1
14 / 14 / 2
Регистрация: 22.09.2010
Сообщений: 227
17.06.2012, 23:13  [ТС] 3
Что-то не работает программа. Все скомпилировалось, запускается. Ввожу фамилию — пишет нет такой записи.

Программа должна считать файл и произвести поиск в файле по введенной фамилии. Если такая фамилия есть — вывести всю строку.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdlib.h>
void find(char *);
int main(int argc, char *argv[]) {
    if (argc!=2) {
        puts("use: programm <file>");
        exit(1);
    }
    find(argv[1]);
    return 0;
}
 
void find(char *fname) {
    FILE *f;
    char example[32];
    char id[32];
    char name[32];
    char lastname[32];
    char phone[32];
    int x1 = 0;
    puts("\nSearch the database");
    if ((f = fopen(fname, "rt")) == NULL) {
        printf("Error opening the file %s", fname);
        getch();
        return;
    }
    printf("Lastname -> ");
    scanf("%s", &example);
    while (!feof(f)) {
        fscanf(f,"%s %s %s %s", &id, &name, &lastname, &phone);
        if (lastname == example) {
            printf("%s %s %s %s", id, name, lastname, phone);
            x1++;
        }
    }
    if (x1) {
        printf("Records found: %i", x1);
    } else {
        printf("Data about the %s missing in the database", example);
    }
    fclose(f);
    puts("\nPress to end <Enter>");
    getch();
}
file.txt:
Код
01 Sergey Ushakov 011171513
02 Andrey Ivanov 589866905
03 German Sidorov 954415716
04 Alex Petrosyan 114960386
05 Masha Bashkina 105371519
0
349 / 299 / 165
Регистрация: 15.03.2012
Сообщений: 651
Записей в блоге: 1
17.06.2012, 23:19 4
Попробуй так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void find(char *);
int main(int argc, char *argv[]) {
    if (argc!=2) {
        puts("use: program <file>");
        exit(1);
    }
    find(argv[1]);
    return 0;
}
 
void find(char *fname) {
    FILE *f;
    char example[32];
    char id[32];
    char name[32];
    char lastname[32];
    char phone[32];
    int x1 = 0;
    puts("\nSearch the database");
    if ((f = fopen(fname, "rt")) == NULL) {
        printf("Error opening the file %s", fname);
        getch();
        return;
    }
    printf("Lastname -> ");
    scanf("%s", example);
    while (!feof(f)) {
        fscanf(f,"%s %s %s %s", id, name, lastname, phone);
        if (!strcmp(lastname, example)) {
            printf("%s %s %s %s\n", id, name, lastname, phone);
            x1++;
        }
    }
    if (x1) {
        printf("Records found: %i\n", x1);
    } else {
        printf("Data about the %s missing in the database\n", example);
    }
    fclose(f);
    puts("\nPress to end <Enter>");
    getch();
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2012, 23:19

Параметр командной строки
Уважаемые форумчани, прошу подсказать, как будет выглядеть следующее в коде: Программа должна...

параметр командной строки
всем доброго времени суток нужна ваша помощь надо написать скрипт, получающий в качестве...

Параметр командной строки не обрабатывается
Здравствуйте. Простая программа - копирование каталога через командную строку. procedure...

Параметр командной строки со значением
Возникла необходимость реализовать в программе прием параметра командной строки, у которого есть...

Вшить параметр командной строки в .exe
Ребят подскажите, как реализовать, чтобы файл запускался с параметрами командной строки без...

Как удалить файл из командной строки?
Здравствуйте. Помогите разобраться с удалением файла с командной строки! Вроде все делаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru