вопрос про C Builder6

bakhill

не могу открыть текстовой файл на диске C:
на другом компе все было отлично - открывалось, сейчас пишет Не могу открыть файл
посоветуйте:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include "func.h"
#define FNAME "C:\\num.txt"
int main
{
int N, M; int res;
 // открытие файла с данными
FILE *fp = fopen(FNAME, "rt");
if (fp == NULL){ printf("Can't open file"); return 0; }
     printf("Calculation of VaR by historical simulation method. \n");
     printf("Enter N number of instruments :\n-> ");
     scanf("%i", &N);
     printf("Enter M lenght of the time series of instruments:\n-> ");
     scanf("%i", &M);
     printf("M=%i, N=%i", N, M);
     //создаем массив a цен
int i,j;
double *a=(double*) malloc(N*M*sizeof(double;
     //заполняем этот массив данными из текстового файла
res = scandata(fp, a, M, N);
if (res==0) printf("Programm done\n");
  printf("Time series of the instruments:\n");
     //печатаем массив колонками
shortprintdata(a, M, N); ..... и т.д.
 ПИШИТЕ В ПРИВАТ ЖЕЛАТЕЛЬНО

Elina74

а он там лежит?
НТФС? права доступа на него какие?

bakhill

да NTFS
насчет прав доступа - не понял, что именно нужно сказать и где это узнать? в свойствах диска C разделе "доступ"?

Realist

В свойствах файла в разделе доступ
Попробуй его что-ли блокнотом открыть или еще чем, ибо проблема, вероятно, не в программе.

bakhill

да он открывался у меня дома
на работе не хочет что-то, хрень какая-то
вроде я галочки поставил себе везде и у меня есть доступ

Realist

1) Замени fopen(FNAME, "rt"); на fopen(FNAME, "r"); или объясни, что делает буква t.
2) Посмотри на значение errno, чтоб определить, в чем у тебя ошибка.
3) Не пиши так. Это Си, а Не С++.

bakhill

короче на работе так и не заработало
в конце я даже не смог распечатать слово huy! (говорит что getch; андефенид)
пришел домой, установил так же как и на работе, все просто отлично и файл открывается и все другое....
как так? я подумал, что неправильно установил прогу, раз не узнает гетч, но дома я так же установил, что за чудеса? объясните, я не программист, в этом сильно не рюхаю.

bakhill

вот такую ошибку выдает:
[C++ Warning] func.cpp(9): W8058 Cannot create pre-compiled header: code in header
может дело в функции?
int scandata(FILE *fp, double *a, int M, int N){
int i,j;
double x;
for(j=0; j<M; j++)
{ for(i=0; i<N; i++)
{
fscanf(fp, "%lf", &x); a(i,j)=x;
}
}
return 1;
}

Realist

В настройках (не знаю, где) отключи прекомпиляцию недеров. А вообще уже в ЖОБе предложи кому-нить пива за разруливание всего этого безобразия. Или по крайней мере пиши более информативно.
То есть сообщение об ошибке не пересказывай, а копируй как есть. Далее, копируй код, к которому оно онтосится. Скажем: func.cpp(9) — 9-ая строчка файла func.cpp. Ну и не только 9-ую, а весь кусок, какой там есть. Или вообще всю программу,если она обозрима.
Далее, [C++ Warning] — это предупреждение, а не ошибка.
Из твоих постов вообще непонятно, в чем у тебя проблема:
Файл не открывается?
Не определена getch?
Не может создать прекомпилированные хидерв?
Или все сразу?
Да, код в этом форуме принято оформлять в виде кода.
В общем, или в ЖОБ, или пиши четко и ясно.

ag_007

По моему не прально ты дефайн Дядя Федор делаешь:) вместо define FNAME "C:\\num.txt" я бы попробовал define FNAME "C:/num.txt" ибо слэшей дофига.И нужен обратный а не прямой.Если пашет то пива мне

Elina74

по-моему, в винде пофигу какой слеш, \\ или /

ag_007

по-моему, в винде пофигу какой слеш, \\ или /
==================
Попробовать стоит:)...
Оставить комментарий
Имя или ник:
Комментарий: