Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142

Определить все данные, тип которых вводится из командной строки

01.03.2012, 10:21. Показов 4850. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Файл содержит символы, слова, целые числа и числа с плавающей запятой.
Определить все данные, тип которых вводится из командной строки.

для определения типы делаю так:
C++
1
2
3
4
if (strcmp(argv[1],"int"))
               int a;
        if (strcmp(argv[1],"char"))
               char a;
Но оно не сравнивает и не определяет....
мыслей, как организовать в самой строке слова с числами находить нет вовсе...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2012, 10:21
Ответы с готовыми решениями:

Определить все данные, тип которых вводится из командной строки.
помогите, пожалуйста, реализовать на java. Вот условие: Файл содержит символы, слова, целые числа и числа с плавающей запятой....

Вводится число N. Определить количевство одинаковых и неодинак Вводится число N . Определить, все ли цыфры разные; естли нет, тоговых цыфр в числе.
Задача №15 Вводится число N . Определить, все ли цыфры разные; естли нет, тогда сколько одинаковых? Число N>0. нужно зделать,...

Вывести все переменные среды, названия которых начинаются на букву, которая задана дополнительным аргументом параметра командной строки "х".
Здрасте форумчане, возникла проблемма. Вот условие задачи: Написать программу которая выводит все переменные среды, названия которых...

23
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.03.2012, 17:40
Студворк — интернет-сервис помощи студентам
Liv-pooL, как и обещал довёл логику strtok - вышло здорово(см скрины)
Данные в файле прежние : baba v 45 45.4 45.67 dgskjkh 4 8
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
 
int isString(char * text)
{
    int ret = 1;
    for(int i = 0; text[i] != '\0' && ret; i++)
    {
        if(isdigit(text[i]))
            ret = 0;
    }
    return ret;
} 
 
int main(int argc, char * argv[])
{
    int    i_arg;
    double d_arg;
    int iType= 0;
    int iComa= 0;
    long sLen= 0;
    long count = 0;
    char * str = NULL;
    char * tok = NULL;
    FILE * f = NULL;
    if(argc < 2)
        printf("To less of arguments\n");
    else
    if(!(f = fopen("data.txt","r")))
        printf("Error creating data.txt\n");
    else
    {
        fseek(f,0,SEEK_END);
        sLen = ftell(f);
        fseek(f,0,SEEK_SET);
        if(strcmp(argv[1],"int") == 0)
            iType = 1;
        if(strcmp(argv[1],"double") == 0)
            iType = 2;
        if(!(str = (char * )malloc((1 + sLen)*sizeof(char))))
            printf("Allocation memory error\n");
        else
        if(!fread(str,1,sLen,f))
            printf("File reading error\n");
        else
            str[sLen] = '\0';
        fclose(f);
        tok = strtok(str," ");
        while(tok)
        {
            iComa = (strchr(tok,'.') || strchr(tok,','));
            switch(iType)
            {
            case 1:
                if(sscanf(tok,"%d",&i_arg) && !iComa)
                {
                    printf("int : %d\n",i_arg);
                    count = count + 1;
                }
                break;
            case 2:
                if(sscanf(tok,"%lf",&d_arg)&& iComa)
                {
                    printf("double : %lf\n",d_arg);
                    count = count + 1;
                }
                break;
            default:
                if(isString(tok))
                {
                    printf("string : %s\n",tok);
                    count = count + 1;
                }
                break;
            };
            tok = strtok(NULL," ");
        }
        printf("Total count of params %d\n",count);
    }
    system("pause");
    return 0;
}
Миниатюры
Определить все данные, тип которых вводится из командной строки   Определить все данные, тип которых вводится из командной строки   Определить все данные, тип которых вводится из командной строки  

1
02.03.2012, 17:47

Не по теме:

kravam, тебе бы не коды писать а сказки!
Во первых последний твой код из поста 20 абсолютно нерабочий!
(тест с параметром int double и т.д. постоянно приводит к результату "Что-то ты не то ввёл"). Возможно перед запуском твоей программы ещё молиться надо или читать мантры и тогда она работает, ну что ж такой тест не делал:D
Во вторых от всей души вручаю тебе приз за самый раздутый код.
Ну а в 3-х на

Цитата Сообщение от kravam Посмотреть сообщение
using namespace std;
компилятор не ругался, не?;)

1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
02.03.2012, 19:34
Исправил.
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
 
#define kolichestvo_el 12
 
 
using namespace std;
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
int f (char* p, char* tip) {
 
 //проверка- int не int;
 if (!(strcmp(tip, "int"))) {  
  if (atoi(p)&&!strchr(p, '.')) 
   printf ("%s целое число\n", p);
  else if ((strlen(p)==1)&& p[0]=='0') 
    printf ("%s целое число\n", p);
  return 0;
 }
 
 //проверка- double не double;
 if (!(strcmp(tip, "float"))|| !(strcmp(tip, "double"))) { 
  if (!(atoi(p)&&!strchr(p, '.')))  
   if (!((strlen(p)==1)&& p[0]=='0'))   
    if (atof(p)) 
     printf ("%s дробное число\n", p);
     return 0;
 }
 
 //проверка- char не char;
 if (!(strcmp(tip, "char"))) { 
  if (!(atoi(p)&&!strchr(p, '.')))
   if (!((strlen(p)==1)&& p[0]=='0'))
    if (!atof(p))
     if (strlen(p)== 1) 
      printf ("%s символ\n", p);
      return 0;
 }
 
 //проверка- char* не char*;
 if (!(strcmp(tip, "char*"))) { 
  if (!(atoi(p)&&!strchr(p, '.')))
   if (!((strlen(p)==1)&& p[0]=='0'))
    if (!atof(p))
     if (!(strlen(p)== 1)) 
      printf ("%s строка\n", p);
      return 0;
 }
 
 return 1;
}
 
 
 
 
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
int main(int argc, char* argv[]) {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 char* proba [kolichestvo_el]= {(char*)"stroka", (char*)"c", (char*)"-234", (char*)"-456.77",\
                                (char*)"-121", (char*)"-3.45.7", (char*)"3.45.7", (char*)"0",\
                                (char*)"0.0", (char*)"-0", (char*)"-0.04", (char*)"qwe.erer"};
 
 
 //Вот ты запустил программу из консоли, допустим так:
 //main.exe int
 //И вот щас, в момент выполнения твоей программе доступны 
 //argv [0] и argv [1], причём argv [0] суть "main.exe",
 //argv [1] суть int
 //Воспользуемся этим 
 
 for (int i= 0; i< kolichestvo_el; i++) {
  if (f (proba[i], argv[1])) {
   printf ("Что-то ты не то ввёл\n");
   break;
  }
 }    
 
 return 0;
}
0
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
12.03.2012, 23:04  [ТС]
Можете помочь с вопросом: Как при помощи ф-ий read/write записать в файл, а потом считать с него
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2012, 23:04
Помогаю со студенческими работами здесь

Создать классы, спецификации которых приведены ниже. Определить конструктор и методы get Тип(), get Тип(), show Информ()
Реализовать класс в консольном приложении. Определить дополнительно методы в классе, создающем массив объектов. Задать критерий выбора...

Определить и вывести на экран построчно только те строки, все элементы которых положительны
Вообще не понимаю как сделать это(( ( с клавиатуры вводятся два целых числа – М и К. 1&lt;M&lt;10, 1&lt;K&lt;10. (М – число строк, К –...

Как с помощью командной строки в Windows 7 в разделе на диске установить тип раздела 0х12
Всем добрый день. Извините за вторжение. Вопрос вот какой. Как с помощью командной строки в Windows 7 в разделе на диске установить тип...

Определить, есть ли в матрице строки, все элементы которых равны нулю, за исключением последнего
Добрый вечер! Помогите пожалуйста решить данную задачу. Задана матрица Am×m . Определить, есть ли в ней строки, все элементы...

Определить, есть ли в матрице строки, все элементы которых равны нулю, за исключением последнего
Помогите решить задачу. Задана матрица Am*n. Определить, есть ли в ней строки, все элементы которых равны нулю, за исключением...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru