Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

нужна помощь с++

696  1 2 3 все
Sweti lipmos местный житель09.12.12 17:57
Sweti lipmos
NEW 09.12.12 17:57 
Добрый день,
я составляю программу на с++ для интерполяции. Сам процесс интерполяции сделала. Проблемы со считыванием файлов и есть кое какие вопросы по классам. Кто может разъяснить некоторые вопросы? Например, как исправить ошибку "Expression str!=NULL Line 55"? Где искать эту Line 55? Если найдется желающий помочь в районе Paderborn, с удовольствием возьму Nachhilfestunde. Только я не понимаю никаких спецназваний на русском ))
Спасибо заранее))
Слава богу, я атеист..
#1 
  Posmotrim посетитель09.12.12 18:09
Posmotrim
NEW 09.12.12 18:09 
в ответ Sweti lipmos 09.12.12 17:57
В ответ на:
как исправить ошибку "Expression str!=NULL Line 55"

В сообщении не указано имя файла?
В ответ на:
Проблемы со считыванием файлов и есть кое какие вопросы по классам.

Выложи куда-то исходники, могу попробывать помочь.
#2 
Sweti lipmos местный житель09.12.12 18:17
Sweti lipmos
NEW 09.12.12 18:17 
в ответ Posmotrim 09.12.12 18:09
написала Вам в личку)
Слава богу, я атеист..
#3 
Nickrus постоялец10.12.12 10:21
NEW 10.12.12 10:21 
в ответ Sweti lipmos 09.12.12 17:57
В редакторе кода слева от начала каждой строки должен стоять её номер. Если это не так, можно либо включить эту настройку в редакторе, либо просто дважды щёлкнуть по сообщению об ошибке, редактор должен перейти на эту строчку.
Ну или можно установить редактор типа Notepad++ и открыть файл в нём - там строки тоже нумеруются, будет видно.
#4 
  digital.pilot патриот10.12.12 12:05
digital.pilot
NEW 10.12.12 12:05 
в ответ Nickrus 10.12.12 10:21, Последний раз изменено 10.12.12 12:05 (digital.pilot)
еще вариант: практически все современные программистские редакторы (по кр. мере под виндой): a) показывают строку в статусной строке окна редактора b) позволяют перейти на нужную строку через Ctrl + G
#5 
Simple Nothing is f*cked10.12.12 12:20
Simple
NEW 10.12.12 12:20 
в ответ Sweti lipmos 09.12.12 17:57
Скиньте код на pastebin или похожий сервис, или это секрет?
Можно попробовать Visual Studio C++ Express, если еще до сих пор в консоли компилите :)
#6 
Sweti lipmos местный житель10.12.12 20:38
Sweti lipmos
NEW 10.12.12 20:38 
в ответ Simple 10.12.12 12:20
Я и компилирую в Visual Studio 2010 Express ...

Программа не секретная )) только не пользуюсь никаким "сервисом"......
Слава богу, я атеист..
#7 
Sweti lipmos местный житель10.12.12 20:43
Sweti lipmos
NEW 10.12.12 20:43 
в ответ Simple 10.12.12 12:20

В ответ на:
Скиньте код на pastebin

Там все на англ...ужас..есть что нить на немецком?
Слава богу, я атеист..
#8 
Simple Nothing is f*cked10.12.12 21:01
Simple
NEW 10.12.12 21:01 
в ответ Sweti lipmos 10.12.12 20:43
Ленивый нынче народ пошел ;)
http://pastebin.de/
#9 
Sweti lipmos местный житель10.12.12 21:17
Sweti lipmos
NEW 10.12.12 21:17 
в ответ Simple 10.12.12 21:01
не, не ленивый, не сообразительный мы народ..
я подумала и решила, что все таки на такой обзор я не хочу (все таки на практике я...)
можно я сюда скопирую одну методу, которая у меня не работает?
Слава богу, я атеист..
#10 
Simple Nothing is f*cked10.12.12 21:19
Simple
NEW 10.12.12 21:19 
в ответ Sweti lipmos 10.12.12 21:17
А больше и не надо.
#11 
Sweti lipmos местный житель10.12.12 21:24
Sweti lipmos
NEW 10.12.12 21:24 
в ответ Simple 10.12.12 21:19, Последний раз изменено 11.12.12 08:07 (Sweti lipmos)

#include "stdafx.h"
#include "ausgabe.h"
void printvector (double *vector, int laenge);
int lesenAuswertungspunkte (double *auswertungspunktex, double *auswertungspunktey);
int main(int argc, char* argv[])
{
double *Interpolationspunktex =NULL;
double *Interpolationspunktey=NULL;

int laenge = lesenAuswertungspunkte (Interpolationspunktex, Interpolationspunktey);
int lesenAuswertungspunkte (double *auswertungspunktex, double*auswertungspunktey)
{
char dateiname [100];
printf_s ("Welche Datei möchten Sie zum lesen von Interpolationspunkte öffnen? ");
sscanf_s ("%s",dateiname, strlen (dateiname));
int a;
FILE *fp=_fsopen(dateiname, "rt+",_SH_DENYRD);
if (fp!=NULL)
{
char Line [100];
if (fgets(Line, 100, fp)==NULL)
{
printf_s("Die Zeile in der Datei %s kann nicht geoeffnet werden", dateiname);
return 0;
}
if (sscanf_s(Line, "Anzahl %d", &a)!=1)
{
printf_s("Falsche Datei geoeffnet?");
return 0;
}
auswertungspunktex= new double [a];
auswertungspunktey= new double [a];
for (int i=0; i<=1; i++)
{
for (int j=0; j<=a; j++)
{
if (feof (fp)==0)
{
printf ("Fehler beim auslesen von x oder y");
return 0;
}
if (i==0)
fscanf_s(fp, "%f", auswertungspunktex [j]);
else fscanf_s (fp, "%f", auswertungspunktey [j]);
}
}
printf_s ("Ihre Interpolationspunkte x:");
printvector (auswertungspunktex, a);
printf_s ("Ihre Interpolationspunkte y:");
printvector (auswertungspunktey, a);
fclose (fp);
}
printf_s("diese Datei existiert nicht!");
return a;
}


Только не ругайтесь сильно, я начинающая!!

Слава богу, я атеист..
#12 
Simple Nothing is f*cked10.12.12 21:33
Simple
NEW 10.12.12 21:33 
в ответ Sweti lipmos 10.12.12 21:24, Последний раз изменено 10.12.12 21:34 (Simple)
Отформатируйте код, пожалуйста, и запостите его потом с помощью тега [pre
Ах да, это к с++ никакого отношения не имеет. Чистый С.
#13 
Sweti lipmos местный житель10.12.12 21:50
Sweti lipmos
NEW 10.12.12 21:50 
в ответ Simple 10.12.12 21:33
ну так это же только часть программы.. Там есть класс и обьекты. Эта метода в main.cpp, тк я ее не на обьекте использую, а просто мне надо векторы считать с файла. Она должна самая первая выполняться и на ней я вишу..
Почему то не форматируется - выдается все равно так как Вы ее видите. Tera pre это что? Вы, пожалуйста, не злитесь на меня, что я не знаю такого. Что я не знаю- лезу в инет..Там что то совсем не понятное на эту тему..Надо что то скачать?
Слава богу, я атеист..
#14 
Simple Nothing is f*cked10.12.12 21:52
Simple
NEW 10.12.12 21:52 
в ответ Sweti lipmos 10.12.12 21:50, Последний раз изменено 10.12.12 21:52 (Simple)
А я не злюсь, с чего вы взяли?
Вот скриншот:

#15 
Sweti lipmos местный житель10.12.12 21:58
Sweti lipmos
NEW 10.12.12 21:58 
в ответ Simple 10.12.12 21:52
Спасибо )
Изменила. Так?
Слава богу, я атеист..
#16 
Simple Nothing is f*cked10.12.12 22:00
Simple
10.12.12 22:00 
в ответ Sweti lipmos 10.12.12 21:58
Гораздо лучше :)
#17 
Simple Nothing is f*cked10.12.12 22:02
Simple
NEW 10.12.12 22:02 
в ответ Sweti lipmos 10.12.12 21:24
Навскидку, код компилироваться не должен (у меня нет под рукой компилятора, чтобы проверить), потому что функция lesenAuswertungspunkte "встроена в main.
Где, еще раз, ошибка?
#18 
Sweti lipmos местный житель10.12.12 22:18
Sweti lipmos
NEW 10.12.12 22:18 
в ответ Simple 10.12.12 22:02, Последний раз изменено 10.12.12 23:01 (Sweti lipmos)
когда компилирую: Спрашивает:Welches Datei möchten Sie zum lesen von Interpolationspunkte öffnen? Значит, метода начала работу..
называю : Text.txt. И все. Стрелка указывает на методу FILE *fp=_fsopen(dateiname, "rt+",_SH_DENYRD); то есть там программа остановилась. Никаких ошибок не выдает больше. char * Line (когда мышь ставишь на него) показывает (как комментар) как прчитаный из файла, то есть "Anzahl 5" . Файл такой:
первая строка Anzahl 5
вторая 0.0 1.0 ...undsoweiter (ein vektor mit 5 koordinaten)
третья 1.1 2.1 ... undsoweiter(ein vektor mit 5 koordinaten)
тоесть первую строку "узнает", а 5 как integer а (здесь: if (sscanf_s(Line, "Anzahl %d", &a)!=1) ) уже нет, показывает просто ее адрес.
Не знаю понятно ли обьяснила ...?
Сам метод должет считать первую строку и запомнить число 5 как int a. Потом считываю вторую строку и запоминаю ее как вектор auswertungspunktex длины 5 и третью соответственно как auswertungspunktey длины 5. И распечатать.
Слава богу, я атеист..
#19 
Sweti lipmos местный житель10.12.12 22:21
Sweti lipmos
NEW 10.12.12 22:21 
в ответ Sweti lipmos 10.12.12 22:18, Последний раз изменено 10.12.12 22:49 (Sweti lipmos)
Так было на работе/практике. А дома (на другом компе та же программа) тоже спрашивает, что открыть и сразу окно с этой "str!=NULL in Line 57"
Слава богу, я атеист..
#20 
1 2 3 все