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

Помогите новичку разобраться с С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
NaV'i4ok
3 / 3 / 0
Регистрация: 18.03.2011
Сообщений: 85
21.09.2011, 11:00     Помогите новичку разобраться с С++ #1
Доброго всем времени суток!
Пытаюсь изучать С++ и у меня такие вопросы(накопились из разных тем):
1.Когда надо в конце типу float писать f?Надо ли
если задавать константу
соnst float f=0.5
если передавать конст как аргумент
sale(0.25);

если инициализировать просто переменную
float f=0.5
если поле класса
void scale(Distance& dd, float factor )
{…}
scale(d1, 0.5);//масштабирование d1 и d2
scale(d2, 0.25);

Те же вопросы к типу long :когда надо L в конце?
2.если например у нас есть масив int intArr[] то правилино ли:
&intArr=intArr
*int intArr=intArr ?
3.Visual C++ отличается Build Solution(F7) от Compile(Ctrl+F7)
4.Ошибка в строке(код из книги) :

hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
_____________________________________________________________________________________1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\консольная графика\msoftcon\msoftcon\msoftcon.cpp(17) : error C2664: 'CreateFileW' : cannot convert parameter 1 from 'const char [8]' to 'LPCWSTR'
5.При отладке или выполнении програмы часто компилятор выдает :
There is no sourse code available for the current location.
Show disassembly automatically(OK, Show disassembly)
Кда девался мой «источник» если небыло ни ошибок ни предупреждений?
И что будет если все-таки подтвердить,розложится код на машинный язык?
6.Куда вписывать аргументы командной строки (С++)?
Надо запустить из всех программ Visual Studio 2008 Command Prompt и в консольном окне задать эти параметры или как?И файлы srcfile.срр и destfile.срр должны быть включкены в проэкт?А то я набираю код(из книги) и при выполнении
Формат : ocopy srcfile destfile
Где все-таки задать эти два аргумента?

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
//Ex12_2.cpp
//Эмуляция команды COPY (MS DOS)
#include <iostream>
#include <fstream>
#include <clocale>
using namespace std;
#include <process.h>
int main(int argc,char* argv[])
{
    setlocale(LC_CTYPE,"Russian");
    if(argc!=2)
    {
        cerr<<"\nФормат : ocopy srcfile destfile";
        exit(-1);
    }
    char ch;
    ifstream infile;//создать входной файл
    infile.open(argv[1]);//открыть файл
    if(!infile)//проверка на ошибки
    {cerr<<"\nНевозможно открытие "<<argv[1];exit(-1);}
    ofstream outfile;//создать выходной файл
    outfile.open(argv[2]);//открыть его
    if(!outfile)//проверка на ошибки
    {cerr<<"\nНевозможно открытие "<<argv[2];exit(-1);}
    while(infile)//до EOF
    {
        infile.get(ch);//считать символ
        outfile.put(ch);//записать символ
    }
    return 0;
}
На вопр.6 пожалуйста поподробней.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
magirus
21.09.2011, 11:04
  #2
 Комментарий модератора 
если вопросы по С++ задавать в разделе linux, то ответов можно и не дождаться.
ValeryLaptev
Эксперт С++
1012 / 791 / 46
Регистрация: 30.04.2011
Сообщений: 1,600
21.09.2011, 11:13     Помогите новичку разобраться с С++ #3
6. Аргументы командной строки вписываются в окне свойств проекта.
Project->Propeties->Configuration Propeties->Debugging-> Command Arguments
NaV'i4ok
3 / 3 / 0
Регистрация: 18.03.2011
Сообщений: 85
21.09.2011, 11:28  [ТС]     Помогите новичку разобраться с С++ #4
Извенити,просто было открыто несколько вкладок с форума
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
21.09.2011, 13:04     Помогите новичку разобраться с С++ #5
Цитата Сообщение от NaV'i4ok Посмотреть сообщение
2.если например у нас есть масив int intArr[] то правилино ли:
&intArr=intArr
*int intArr=intArr ?
C++
1
2
3
int intArr[10];
int &refArr = intArr;
int *ptrArr = intArr;
Или я не правильно понял?
Цитата Сообщение от NaV'i4ok Посмотреть сообщение
3.Visual C++ отличается Build Solution(F7) от Compile(Ctrl+F7)
Compile - это компиляция текущего файла в объектный код, Build Solution - компиляция и компоновка всего проекта.
Цитата Сообщение от NaV'i4ok Посмотреть сообщение
4.Ошибка в строке(код из книги) :
hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
Подобные функции которые так или иначе работают с текстом (либо что-то делают с текстом, либо принимают текстовые параметры) существуют в двух разновидностях. Которые работают с однобайтовым char'ом (имеют суффикс А, например CreateFileA()), и которые работют с символами юникод (имеют суффикс W, CreateFileW()). Также для таких функций есть макрос (имя функции без суффикса), который при компиляции, в зависимости от настроек проекта, заменяется на соответствующие функции. В твоем же случае используются чаровские переменные, а в настройках проекта задано использование юникода. Тут нужно либо привести переменные к соответствующему типу, либо изменить настройки проекта.
Цитата Сообщение от NaV'i4ok Посмотреть сообщение
5.При отладке или выполнении програмы часто компилятор выдает :
There is no sourse code available for the current location.
Show disassembly automatically(OK, Show disassembly)
Могу ошибаться, но по моему такое сообщение вылазит, в случае изменения исходного кода во время запуска программы.

Добавлено через 7 минут
Цитата Сообщение от kazak Посмотреть сообщение
Тут нужно либо привести переменные к соответствующему типу, либо изменить настройки проекта.
Хотя, использование подобных макросов имеет смысл только при использовании типа TCHAR, если ты работаешь с конкретным типом, то вызывай конкретные функции для этих типов.

Добавлено через 7 минут
Цитата Сообщение от NaV'i4ok Посмотреть сообщение
1.Когда надо в конце типу float писать f?
Тогда, когда ты хочешь чтобы константа имела тип именно float.

Добавлено через 8 минут
Цитата Сообщение от kazak Посмотреть сообщение
Могу ошибаться, но по моему такое сообщение вылазит, в случае изменения исходного кода во время запуска программы.
Не, ошибаюсь. Такое сообщение должно вылазить при пошаговой отладке с заходом в функцию, если для этой функции нет исходного кода (допустим эта функция из стандартной библиотеки.
NaV'i4ok
3 / 3 / 0
Регистрация: 18.03.2011
Сообщений: 85
21.09.2011, 16:41  [ТС]     Помогите новичку разобраться с С++ #6
И все-таки как это исправить:
4.Ошибка в строке(код из книги) :

hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
_____________________________________________________________________________________
cpp(17) : [B]error C2664:'CreateFileW' : cannot convert parameter 1 from 'const char [8]' to 'LPCWSTR'
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
21.09.2011, 16:43     Помогите новичку разобраться с С++ #7
CreateFile => CreateFileA
NaV'i4ok
3 / 3 / 0
Регистрация: 18.03.2011
Сообщений: 85
25.10.2011, 21:48  [ТС]     Помогите новичку разобраться с С++ #8
Тогда, когда ты хочешь чтобы константа имела тип именно float.

Но если ,например массив типа float
float far[]={12f, 4f, 0.5f, 56f, 789.5f};
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2059: syntax error : 'bad suffix on number'
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2146: syntax error : missing '}' before identifier 'f'
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2146: syntax error : missing ';' before identifier 'f'
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2065: 'f' : undeclared identifier

и так для каждого числа в массиве

И речь только о константах или при инициализации переменных тоже надо f в конце?

Добавлено через 5 минут
Цитата Сообщение от kazak Посмотреть сообщение
Сообщение от NaV'i4ok
1.Когда надо в конце типу float писать f?
Тогда, когда ты хочешь чтобы константа имела тип именно float.
Добавлено через 8 минут
Но если ,например массив типа float
float far[]={12f, 4f, 0.5f, 56f, 789.5f};
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2059: syntax error : 'bad suffix on number'
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2146: syntax error : missing '}' before identifier 'f'
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2146: syntax error : missing ';' before identifier 'f'
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\lafore_oop_c++\задания\к гл14\ex14_5\ex14_5\ex14_5.cpp(25) : error C2065: 'f' : undeclared identifier

и так для каждого числа в массиве

И речь только о константах или при инициализации переменных тоже надо f в конце?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 11:11     Помогите новичку разобраться с С++
Еще ссылки по теме:

Помогите новичку скомпилировать первую программу. C++
C++ Помогите разобраться с кодом
C++ Помогите новичку - как преобразовать int к string
C++ Помогите новичку разобраться с Типами дробных чисел.
Помогите новичку в C++ разобраться с литературой C++

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

Или воспользуйтесь поиском по форуму:
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.10.2011, 11:11     Помогите новичку разобраться с С++ #9
Цитата Сообщение от NaV'i4ok Посмотреть сообщение
float far[]={12f, 4f, 0.5f, 56f, 789.5f};
Обозначь явно, что числа с плавающей точкой
C++
1
float far[]={12.f, 4.f, 0.5f, 56.f, 789.5f};
Yandex
Объявления
26.10.2011, 11:11     Помогите новичку разобраться с С++
Ответ Создать тему
Опции темы

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