Форум программистов, компьютерный форум CyberForum.ru

Передача файлов через параметры функции main - C++

Восстановить пароль Регистрация
 
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 13:34     Передача файлов через параметры функции main #1
Всем привет. Я студент первого курса. У меня возникла проблема при написании программы шифрования Xor алгоритмом, программа работает корректно и все правильно шифрует. Но принимает только файлы у которых имя состоит из одного символа (а,f,1), а при открытии файла (f.txt) выдает ошибку "error opening".
Приходится каждый раз после шифрования расширение файла дописывать вручную.

Помогите пожалуйста устранить проблему.




Вот собственно код программы:
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
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "string.h"
 
void crypt(char n1[], char n2[])
{
int pos=0, lkey; 
int c_key, c; 
 
char key[]="ridersof0the3storm";
FILE *f1, *f2;
if((f1=fopen(n1,"rb"))==NULL) printf("Open error %s \n",n1);
else
 {
     if((f2=fopen(n2,"wb"))==NULL) printf("Error creating file %s",n2);
     else
     {
         lkey=strlen(key);
         while (!feof(f1))
         {c=getc(f1);
         if(pos==lkey)pos=0;
         c_key=key[pos];
         c^=c_key; pos++;
         putc(c,f2);
         }
       fclose(f2);
     }
     fclose (f1);
 }
 
}
 
void compare (char s1[], char s2[])
{char c1, c2; FILE *f1, *f2;
 
if((f1=fopen(s1,"rb"))==NULL) printf("Open error %s \n",s1);
else
{if((f2=fopen(s2,"rb"))==NULL) printf("Open error %s \n",s2);
else
{while(((c1=getc(f1)) !=EOF)& ((c2=getc(f2)) !=EOF))
if (c1 != c2) break;
if (c1==c2)printf ("Files indetical\n");
else printf("Files not indectical\n");
fclose(f2);
}
fclose(f1);
}}
void _tmain(int argc, char *argv[])
{
if (argc<4) {printf("Add parameters to comand line!!! \n");
system ("Pause");}
else 
{printf("Encrypting... \n");    crypt(argv[1],argv[2]);
printf ("Decrypting... \n");crypt(argv[2],argv[3]);
printf ("Compare..\n");
system ("pause");
}}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 13:47     Передача файлов через параметры функции main #2
Что-то непонятное у вас... Покажите ввод в командной строке, и скрин содержимого папки с файлами.
Миниатюры
Передача файлов через параметры функции main  
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 14:13  [ТС]     Передача файлов через параметры функции main #3
Вот скрин содержимого папки с программой и файла run.bat
Миниатюры
Передача файлов через параметры функции main  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 14:28     Передача файлов через параметры функции main #4
В консоли ввода не вижу. Без bat сделайте и покажите скрин ввода.
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 14:35  [ТС]     Передача файлов через параметры функции main #5
Вот
Миниатюры
Передача файлов через параметры функции main  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 14:47     Передача файлов через параметры функции main #6
Файлы file2.txt и file3.txt в папке появляются?
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 14:55  [ТС]     Передача файлов через параметры функции main #7
Нет не появляются,как будто программа ищет в папке не файл "file1.txt", а "f". Когда переименовываю в "1" без расширения .txt а остальные файлы ввожу как "2" и "3" все работает но потом чтобы просмотреть результат надо дописывать расширение.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 14:57     Передача файлов через параметры функции main #8
Попробуйте в двойные кавычки имена файлов заключить.

Добавлено через 1 минуту
Цитата Сообщение от lischun Посмотреть сообщение
Нет не появляются,как будто программа ищет в папке не файл "file1.txt", а "f".
Не появляются, а ошибки создания не выдаёт. Не пойму в чём тут дело. Видимость расширений файлов в системе включена?
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 14:57  [ТС]     Передача файлов через параметры функции main #9
Тот же результат что на скрине выше.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 15:02     Передача файлов через параметры функции main #10
Цитата Сообщение от lischun Посмотреть сообщение
Когда переименовываю в "1" без расширения .txt а остальные файлы ввожу как "2" и "3" все работает
Если без расширения, но не из одной буквы?

Добавлено через 1 минуту
???
Цитата Сообщение от alsav22 Посмотреть сообщение
Видимость расширений файлов в системе включена?
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 15:05  [ТС]     Передача файлов через параметры функции main #11
С буквами тоже работает (файлы с названием типа "а" "b" "c").
А отображения расширений включено.
Миниатюры
Передача файлов через параметры функции main  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 15:06     Передача файлов через параметры функции main #12
Цитата Сообщение от lischun Посмотреть сообщение
С буквами тоже работает (файлы с названием типа "а" "b" "c").
Если файлы без расширения, имя из нескольких букв?
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 15:10  [ТС]     Передача файлов через параметры функции main #13
Не работает, опять видит только первую букву.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 15:17     Передача файлов через параметры функции main #14
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В свойствах проект, Свойства конфигурации, Общие, Набор символов, что стоит?

Добавлено через 1 минуту
Кажется понял. Вот так main() сделайте:
C++
1
void main(int argc, char *argv[])
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 15:21  [ТС]     Передача файлов через параметры функции main #15
А чем моя функция main отличается? только названием _tmain
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 15:23     Передача файлов через параметры функции main #16
Цитата Сообщение от lischun Посмотреть сообщение
А чем моя функция main отличается? только названием _tmain
Вы сначала сделайте, а потом поговорим.
???
Цитата Сообщение от alsav22 Посмотреть сообщение
В свойствах проект, Свойства конфигурации, Общие, Набор символов, что стоит?
lischun
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 21
23.03.2014, 15:25  [ТС]     Передача файлов через параметры функции main #17
спасибо заработало, но хочу знать причину почему не работало до етого?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 15:28     Передача файлов через параметры функции main
Еще ссылки по теме:

Передача параметров функции в main() C++
C++ Параметры функции main
C++ Чтение из файла, название передано как параметры функции main argc & argv

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 15:28     Передача файлов через параметры функции main #18
http://stackoverflow.com/questions/8...-and-main-in-c

Добавлено через 1 минуту
Цитата Сообщение от lischun Посмотреть сообщение
спасибо заработало,
И на будущее (во избежание возможных проблем), не пользуйтесь заморочками microsoft, есть стандарт.
Yandex
Объявления
23.03.2014, 15:28     Передача файлов через параметры функции main
Ответ Создать тему
Опции темы

Текущее время: 16:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru