powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с вводом/выводом.
19 сообщений из 44, страница 2 из 2
Проблема с вводом/выводом.
    #38323248
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь может подсказать, почему получаются такие значения в указателях на файлы после их открытия через fopen_s? Судя по msdn, вызываю правильно.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38323270
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какими они должны получаться?
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38323271
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AN90Кто-нибудь может подсказать, почему получаются такие значения в указателях на файлы после их открытия через fopen_s? Судя по msdn, вызываю правильно.
Так вы не по МСДН судите, а смотрите код ошибки после открытия файла.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38323274
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, ну не нулями, я полагаю. И не то, что в другом написано.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38323276
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky, типа такого сделать
if( (err = fopen_s( &stream, "crt_fopen_s.c", "r" )) !=0 ) ?
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38323279
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AN90,

Ну и смотрите значение err при открытии f_source, который судя по тому что он null - не открылся.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38323555
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AN90White Owl, ну не нулями, я полагаю. И не то, что в другом написано.А почему ты считаешь что в "другом" значения правильные а нули это неправильные значения?
Содержимое структуры FILE является личной собственностью используемой библиотеки. Там может быть абсолютно все что угодно, используемое так как угодно библиотеке. Сам ты туда лезть не должен вообще.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38330277
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. Ввожу просто имя и расширение текстовых файлов.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38330320
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38330406
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AN90,

Если указывать имя файла без пути, то файл ищется в текущем каталоге программы.
Я очень сомневаюсь, что этот текущий каталог совпадает с тем, где находится .sln
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38330516
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Указываю теперь полные пути: C:\1.txt... Только на одной проверке открытия есть ненулевое значение err, равное 13 (Permission denied). То бишь, доступ запрещён.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38330523
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ещё что нашёл:
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.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38338140
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает, почему так, и что с этим делать?
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38338164
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AN90,

Пока не видим конкретный код, а не обрывки каких-то набросков, ничего сказать нельзя.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38338167
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую убрать все лишнее и привести здесь минимальный компилируемый код, на котором наблюдается проблема.
Думаю уже на этом этапе вы сами разберетесь. Но если нет, то кто-то подскажет.
Без кода который можно откомпилировать и запустить никто вам не будет гадать.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38338182
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38338191
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AN90,

В современных виндах без эскалации прав до админа в корневом каталоге сис. раздела создавать/менять файлы нельзя.
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38376933
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky, а как это реализовать программно?
...
Рейтинг: 0 / 0
Проблема с вводом/выводом.
    #38376938
AN90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё вопрос: пытаюсь скопировать содержимое одного файла в другой. Всё копируется, но последний блок данных (в моём случае -это символ, дублируется). Код:
char c;
int i=0;

while (!feof(f_source))/*EOF*/
{
fscanf_s(f_source,"%c",&c,1);
fprintf_s(f_destination,"%c",c);
i++;
}
Почему так?
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с вводом/выводом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]