Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! При использовании scanf_s почему-то в строку ничего не вводится. При использовании fopen_s укзатель на файл остаётся неинициализированным. scanf_s пока заменил на cin. Подскажите, пожалуйста, в чём дело? Код ниже. FILE *f_source, *f_destination; char *source_path, *destination_path,*mode; ................................................................ scanf_s("%s",source_path); ................................................................ scanf_s("%s",destination_path); ................................................................ mode="r"; fopen_s(&f_source,source_path,mode); mode="w"; fopen_s(&f_destination,destination_path,mode); char c; fscanf_s(f_source,"%c",&c,1); fprintf_s(f_destination,"%c",&c); ................................................................ На fprintf_s(f_destination,"%c",&c); выскакивает ошибка, добавленная во вложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2013, 13:04 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Переменные source_path и destination_path равны NULL . Их нужно проинициализировать, например, так: Код: plaintext 1. А также корректно использовать функции scanf_s : Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2013, 13:36 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Почему не хотите использовать ifstream? Код получится более компактным и читабельным, а следовательно - менее подверженным ошибкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:12 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
CompositumAN90, Почему не хотите использовать ifstream? Код получится более компактным и читабельным, а следовательно - менее подверженным ошибкам.Потому что не все то С++ что слегка похоже на него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:18 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
White OwlПотому что не все то С++ что слегка похоже на него. Ну почему же слегка... AN90пока заменил на cin Разве в C есть cin? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:25 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
CompositumWhite OwlПотому что не все то С++ что слегка похоже на него. Ну почему же слегка...Потому что кроме странной оговорки о cin весь код приведенный AN90 является примером использования С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:31 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
White OwlПотому что кроме странной оговорки о cin весь код приведенный AN90 является примером использования С. по моему спор ни о чём. Раз автор заменил на cin (согласно его заявлению), значит он однозначно использует C++, а не C. Весь приведённый выше код можно совершенно спокойно использовать как в C, так и в C++. Я предпочитаю так не писать в C++, но на вкус и цвет все фломастеры разные, видимо автор по каким-то соображениям решил написать код в функциональном стиле. Не суть, ifstream на мой взгляд был бы более предпочтителен в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:39 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Compositumвидимо автор по каким-то соображениям решил написать код в функциональном стиле. Не суть, ifstream на мой взгляд был бы более предпочтителен в данном случае.А при чем здесь "функциональный стиль"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:41 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
White OwlА при чем здесь "функциональный стиль"?[/quote] Честно говоря, твой вопрос меня удивляет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:45 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
CompositumWhite OwlА при чем здесь "функциональный стиль"? Честно говоря, твой вопрос меня удивляет...Да, да, я уже понял, слово красивое, но что оно означает ты не знаешь. Во первых, C это процедурный язык, а не функциональный. Во вторых, "функциональный стиль" это термин из лингвистики а не из IT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 00:03 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Да, сглупил, я конечно. Инициализировал переменные: f_source=new FILE; f_destination=new FILE; Всё равно при отладке в указателях какая-то ерунда, и программа вылетает на том же самом месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 18:07 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90f_source=new FILE; Такого я еще не видел. А я видел многое Почитайте что-ли какой-нибудь учебник по С вместо гадания. Поверьте - вы не угадаете ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 18:48 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
UsmanAN90, Переменные source_path и destination_path равны NULL . Их нужно проинициализировать, например, так: Код: plaintext 1. А также корректно использовать функции scanf_s : Код: plaintext 1. 2. А зачем ты тип переменных-то поменял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 00:01 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
CompositumWhite OwlА при чем здесь "функциональный стиль"? Честно говоря, твой вопрос меня удивляет...[/quot] Меня нет. При чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 00:03 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Честно говоря, затрудняюсь определить самостоятельно промах. После открытия файлов имеем следующее: Модератор: Вложение удалено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 20:35 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Финальный код выложи, чтобы обсуждать было что. Код ЦЕЛИКОМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 21:16 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90Честно говоря, затрудняюсь определить самостоятельно промах. После открытия файлов имеем следующее:У меня достаточно большой экран, но такие картинки в него не лезут. Научись пожалуйста пользоваться gimp'ом или photoshop'ом. Обрезать пустые края картинки это вообще элементарная операция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 21:19 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Код у тебя трижды неправильный: MSDN: Unlike scanf and wscanf, scanf_s and wscanf_s require the buffer size to be specified for all input parameters of type c, C, s, S, or [. The buffer size is passed as an additional parameter immediately following the pointer to the buffer or variable. For example, if reading a string, the buffer size for that string is passed as follows: char s[10]; scanf("%9s", s, 10); The buffer size includes the terminating null. A width specification field may be used to ensure that the token read in will fit into the buffer. If no width specification field is used, and the token read is too big to fit in the buffer, nothing will be written to that buffer. Кроме этого буфера эти ещё и выделять надо, и они естественно не FILE*. Рекомендация: сначала напиши все на scanf, потом поделаешь уже на scanf_s. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 21:24 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
MasterZivAN90, Код у тебя трижды неправильный: MSDN: Unlike scanf and wscanf, scanf_s and wscanf_s require the buffer size to be specified for all input parameters of type c, C, s, S, or [. The buffer size is passed as an additional parameter immediately following the pointer to the buffer or variable. For example, if reading a string, the buffer size for that string is passed as follows: char s[10]; scanf("%9s", s, 10); The buffer size includes the terminating null. A width specification field may be used to ensure that the token read in will fit into the buffer. If no width specification field is used, and the token read is too big to fit in the buffer, nothing will be written to that buffer. Кроме этого буфера эти ещё и выделять надо, и они естественно не FILE*. Рекомендация: сначала напиши все на scanf, потом переделаешь уже на scanf_s. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 21:25 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, так а почему же компилятор ничего не выдаёт? Я же поставил там единицу в размер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 21:40 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, и, кстати, VS 2012 почему-то потребовала и именно fscanf_s, fprint_s. Вот код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 21:43 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
White OwlAN90Честно говоря, затрудняюсь определить самостоятельно промах. После открытия файлов имеем следующее:У меня достаточно большой экран, но такие картинки в него не лезут. Научись пожалуйста пользоваться gimp'ом или photoshop'ом. Обрезать пустые края картинки это вообще элементарная операция. Какой гимп, какой фото шоп? Простой paint с этим справляется великолепно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 23:28 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90MasterZiv, так а почему же компилятор ничего не выдаёт? Я же поставил там единицу в размер? Потому что и не должен ничего выдавать. А не должен потому что не может. И если бы ты, двоечник, учил бы про функции с элипсисом, и как туда передаются параметры, ты бы об этом знал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 23:32 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90 Я же поставил там единицу в размер? Где ты поставил размер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 23:35 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, , и, кстати, VS 2012 почему-то потребовала и именно fscanf_s, fprint_s. Потому что без префикса "f" функции работают неявно с stdin и stdout, а у тебя явно указывается файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 23:49 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Кто-нибудь может подсказать, почему получаются такие значения в указателях на файлы после их открытия через fopen_s? Судя по msdn, вызываю правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 16:38 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
А какими они должны получаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 17:43 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90Кто-нибудь может подсказать, почему получаются такие значения в указателях на файлы после их открытия через fopen_s? Судя по msdn, вызываю правильно. Так вы не по МСДН судите, а смотрите код ошибки после открытия файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 17:43 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
White Owl, ну не нулями, я полагаю. И не то, что в другом написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 18:02 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, типа такого сделать if( (err = fopen_s( &stream, "crt_fopen_s.c", "r" )) !=0 ) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 18:08 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Ну и смотрите значение err при открытии f_source, который судя по тому что он null - не открылся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 18:21 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90White Owl, ну не нулями, я полагаю. И не то, что в другом написано.А почему ты считаешь что в "другом" значения правильные а нули это неправильные значения? Содержимое структуры FILE является личной собственностью используемой библиотеки. Там может быть абсолютно все что угодно, используемое так как угодно библиотеке. Сам ты туда лезть не должен вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 03:39 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, я переписал открытие файлов: mode="r"; if ((err=fopen_s(&f_source,source_path,mode))!=0) cout <<"Error is " << err; mode="w"; if ((fopen_s(&f_destination,destination_path,mode))!=0) cout <<"Error is " << err; Ошибка появляется только при открытии f_source. Значение err: 2. Как пишет вот здесь http://social.msdn.microsoft.com/Forums/vstudio/en-US/60f29244-3963-44a7-8ccc-a78faeaca1f4/error-in-fopen товарищ такая ошибка означает ,что файл не найден. Файлы лежат вместе с файлом *.sln. Ввожу просто имя и расширение текстовых файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2013, 16:13 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90Anatoly Moskovsky, я переписал открытие файлов: mode="r"; if ((err=fopen_s(&f_source,source_path,mode))!=0) cout <<"Error is " << err; mode="w"; if ((fopen_s(&f_destination,destination_path,mode))!=0) cout <<"Error is " << err; Ошибка появляется только при открытии f_source. Значение err: 2. Как пишет вот здесь http://social.msdn.microsoft.com/Forums/vstudio/en-US/60f29244-3963-44a7-8ccc-a78faeaca1f4/error-in-fopen товарищ такая ошибка означает ,что файл не найден. Файлы лежат вместе с файлом *.sln. Ввожу просто имя и расширение текстовых файлов.Не верно, тот товарищ врет. Надо читать вот здесь: http://msdn.microsoft.com/en-us/library/vstudio/z5hh6ee9.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2013, 19:55 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Если указывать имя файла без пути, то файл ищется в текущем каталоге программы. Я очень сомневаюсь, что этот текущий каталог совпадает с тем, где находится .sln ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2013, 00:50 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Указываю теперь полные пути: C:\1.txt... Только на одной проверке открытия есть ненулевое значение err, равное 13 (Permission denied). То бишь, доступ запрещён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2013, 13:57 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Вот ещё что нашёл: 13 EACCES Search permission is denied on a component of the path prefix, or the file exists and the permissions specified by mode are denied, or the file does not exist and write permission is denied for the parent directory of the file to be created. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2013, 14:05 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Кто-нибудь знает, почему так, и что с этим делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2013, 12:39 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, Пока не видим конкретный код, а не обрывки каких-то набросков, ничего сказать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2013, 13:48 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Рекомендую убрать все лишнее и привести здесь минимальный компилируемый код, на котором наблюдается проблема. Думаю уже на этом этапе вы сами разберетесь. Но если нет, то кто-то подскажет. Без кода который можно откомпилировать и запустить никто вам не будет гадать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2013, 13:51 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, вот полный код: <code> // Copying files.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <iostream> #include <windows.h> using namespace std; #define size_file_pass 500 int _tmain(int argc, _TCHAR* argv[]) { FILE *f_source, *f_destination; char *source_path, *destination_path,*mode; errno_t err; //f_source=new FILE; //f_destination=new FILE; source_path=(char *) calloc(size_file_pass,sizeof(char)); destination_path=(char *) calloc(size_file_pass,sizeof(char)); printf("Enter full path to source file: "); //scanf_s("%s",source_path); cin >> source_path; printf("Enter full path to destination file: "); //scanf_s("%s",destination_path); cin >> destination_path; mode="r"; if ((err=fopen_s(&f_source,source_path,mode))!=0) cout <<"Error is " << err; mode="w"; if ((err=fopen_s(&f_destination,destination_path,mode))!=0) cout <<"Error is " << err; char c; fscanf_s(f_source,"%c",&c,1); fprintf_s(f_destination,"%c",c); printf("\n"); printf("%s\n",source_path); printf("%s\n",destination_path); fclose(f_source); fclose(f_destination); free(source_path); free(destination_path); getchar(); getchar(); return 0; } </code> Да, во многом разобрался теперь. Переместил файлы, с которыми ведётся работа с системного диска на другой. Добавил размер буфера 1 в fscanf_s и убрал амперсанд в fprintf_s перед c. Теперь работает ,ошибок нет. Хотелось бы узнать, почему при нахождении файлов на системном диске была ошибка доступа. Предполагаю, что ОС не даёт менять все файлы системного диска, уже встречался с подобными проблемами. Установлена Win8 Pro. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2013, 14:24 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
AN90, В современных виндах без эскалации прав до админа в корневом каталоге сис. раздела создавать/менять файлы нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2013, 14:40 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, а как это реализовать программно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2013, 16:13 |
|
||
|
Проблема с вводом/выводом.
|
|||
|---|---|---|---|
|
#18+
И ещё вопрос: пытаюсь скопировать содержимое одного файла в другой. Всё копируется, но последний блок данных (в моём случае -это символ, дублируется). Код: char c; int i=0; while (!feof(f_source))/*EOF*/ { fscanf_s(f_source,"%c",&c,1); fprintf_s(f_destination,"%c",c); i++; } Почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2013, 16:37 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2020025]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 186ms |

| 0 / 0 |
