Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> main(int argc,char *argv[]), текстовый фаул 
:(
    Опции темы
viluyr
  Дата 7.1.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: нет



Дан текстовый файл мы его открываем и проверяем есть ли в нем текст или нет (с помощью argc и argv),если нет текста то выводим сообщение об ошибке.Еще мне надо проверить если argc больше чем надо,то выводить сообшение слишком длинные строки в файле.
PM MAIL   Вверх
apook
Дата 7.1.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Однако что-то напутал

argc -количество аргументов кмд строки ,а argv их значения



--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
viluyr
Дата 7.1.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: нет



ну да может и перепутал скорее всего argv.А как это все на Си  написать я не понимаю smile 
PM MAIL   Вверх
apook
Дата 7.1.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Если тебе надо программу считывапющую файл то так и скажи
в argv ты можешь передать только имя файла который нгадо открыть 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
viluyr
Дата 7.1.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: нет



НЕ программа у меня есть 
Код

int main(int argc, char *argv[])
{

    char *p;
    int i;
    char c;
         FILE *fin,*fout;
      fin=fopen("F:\\kl\\ewq.txt","rt"); 
           fout=fopen("F:\\kl\\123.txt","wt");

это наччало а затем мне надо проверить есть ли такой файл как fin или нет,есть ли в нем текст или нет.Вот все это надо реализовать при помощи argv и argc.
PM MAIL   Вверх
apook
Дата 7.1.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Код

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"


int main( int argc, char *argv[] )
{
int i;
char ch, fname_in[50];
FILE *f;

if( argc >0 )
    for( i=0; i <argc; i++ )
    {
        if( i==1 ) strcpy( fname_in, argv[i] );
        }
else
{
    printf( "empty cmd line\n" );
    exit(1);
    }

if( (f=(fopen( fname_in, "r+" ))) !=NULL );
else
{
    perror( "Error reading \n");
    exit(1);
    }

fseek( f, 0, SEEK_SET );
for( i=0; (ch=(fgetc( f ))) !=EOF; i++ )
    putc( ch, stdout );


fclose( f );
return 0;
}



Открытие и есть проверка
argv и argc тут не причем


а задание чуть посложней попозже напишу функцию если не напишут 



Это сообщение отредактировал(а) apook - 7.1.2007, 14:46


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
viluyr
Дата 7.1.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: нет



Хорошо Спасибо
PM MAIL   Вверх
KpoHyc
Дата 7.1.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.12.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 5



viluyr, стоп, ты хочешь получить название файла через аргумент? и проверить его? я прально понял?
--------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1)
PM MAIL ICQ Skype GTalk Jabber   Вверх
viluyr
Дата 7.1.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: нет



ну да мне надо проверить есть ли  такой файл,который я запрашиваю на чтение
PM MAIL   Вверх
apook
Дата 7.1.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Воперос не правильно задан Если его понимать буквально то получается галиматья
чуть-ли не заполнение массива argv из файла!
Скорее всего нужно это:
[code=cpp]
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"


int main( int argc, char *argv[] )
{
int i;
long j, c, q;
char ch, fname_in[50];
FILE *f;

if( argc >0 ) //Это проверка есть ли чт-то в командной строке
    for( i=0; i <argc; i++ )
    {
        if( i==1 ) strcpy( fname_in, argv[i] );
        }
else
{
    printf( "empty cmd line\n" );
    exit(1);
    }


if( (f=(fopen( fname_in, "r" ))) !=NULL ); //Это проверка есть ли
PM MAIL   Вверх
viluyr
Дата 7.1.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: нет




apook



  smile СПАСИБО Огромное ты меня выручил!!!
PM MAIL   Вверх
apook
Дата 8.1.2007, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Ха! Глюки! smile  Net хреновый А я даже не посмотрел нормально ли отправил
Вот весь код который я хотел отправить
Код

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"


int main( int argc, char *argv[] )
{
int i;
long j, c, q;
char ch, fname_in[50];
FILE *f;

if( argc >0 ) //Это проверка есть ли чт-то в командной строке
    for( i=0; i <argc; i++ )
    {
        if( i==1 ) strcpy( fname_in, argv[i] );
        }
else
{
    printf( "empty cmd line\n" );
    exit(1);
    }


if( (f=(fopen( fname_in, "r" ))) !=NULL ); //Это проверка есть ли файл
else
{
    perror( "Error reading \n");
    exit(1);
    }


fseek( f, 0, SEEK_SET );
for( i=0, q=0, j=0, c=0; ; i++, q++ ) //Это проверка есть ли чт-то в файле
{
    ch =fgetc( f );
    if( ch =='\n' || ch ==EOF || ch =='\0' )
    {
        if( i >c ) c =i;
        if( ch==EOF && i==0 ) break;
        j++;
        i=0;
        }
    if( ch==EOF ) break;
    }

//j -количество строк
//c -длина самой длинной строки
//q -общее количество символов

if( c==0 )
{
    printf( "File Length of zero: %s", fname_in );
    exit(1);
    }

fseek( f, 0, SEEK_SET );
for( i=0; (ch=(fgetc( f ))) !=EOF; i++ )
    putc( ch, stdout );
puts( "" );

fclose( f );
return 0;
}



Цитата

СПАСИБО Огромное ты меня выручил!!! 

 шутишь или и так хватило smile 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.