Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vab9petryk
2 / 2 / 9
Регистрация: 28.09.2013
Сообщений: 228
#1

Волшебник по имени "масив char" - C++

27.09.2015, 22:30. Просмотров 163. Ответов 1
Метки нет (Все метки)

Что это? Баг или моя ошибка?
Поясняю в чем проблема. При объявлении char file_name[25] з файла считывается ересь. Без этой строчки, все работает на ура. Из-за чего такое поведение? Ведь я даже этот массив не использую. (В программе он нужен, это просто вырезка из программы). Прикол в том, что если usi len объявить до массива, то все ОК. Но такой вариант крайне опасен, так как после массива все равно где-то будут объявляться переменные, и подбирать место для объявления массива char из разряда идиотизма.

Код:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstdlib>
//#include <cstdio>
#include <fstream>
#include <string>
#include <vector>
#include <bitset>
#include <cmath>
using namespace std;
 
typedef unsigned short int usi;
typedef unsigned int ui;
typedef short int si;
typedef unsigned char uc;
 
int main(){
fstream f;
f.open("fire.fr", ios::binary | ios::in);
usi len;
f.read((char*)&len, 1);
cout«len;
cout«endl; system("PAUSE");
return 0; 
}


Во вложении .cpp и файл с данными.
0
Миниатюры
Волшебник по имени "масив char"   Волшебник по имени "масив char"  
Вложения
Тип файла: zip fire.zip (629 байт, 0 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2015, 22:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Волшебник по имени "масив char" (C++):

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что &quot;char *concat(char *,...)&quot;:...

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *"
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен ...

Значение типа "const char *" нельзя использовать для инициализации сущности "char*"
Книга Пратта, Лекции и Упражнения. 750 страница, листинг 14.8. В объявлении...

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *"
for(int i = 0; i&lt; 5; i++) { wr_struc (list); if...

Error C2440: инициализация: невозможно преобразовать "const char [12]" в "char *"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

Как отключить автоматическое добавление "_" "@" "number" к имени экстернального метода?
Здраствуйте! Подскажите как это делается? (вопрос в названии темы) среда :...

1
Renji
2123 / 1482 / 452
Регистрация: 05.06.2014
Сообщений: 4,320
27.09.2015, 22:43 #2
Вы из файла читаете один байт, тогда как размер unsigned short int больше байта. Оставшееся место забивается произвольным мусором.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2015, 22:43
Привет! Вот еще темы с решениями:

Не открывается библиотека 'stdafx.h' и "char" не работает с параметром "char*"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include...

IntelliSense: несовместимые типы операндов ("char" и "const char *")
привет всем! при таком коде: void main() { ifstream fin; ofstream...

Как из масива "а" записать данные в масив "б" но в обратном порядке
#include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;numeric&gt; #include &lt;cstdlib&gt;...

аргумент "const char *" несовместим с параметром "char*"
#include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;cstdlib&gt; class String {...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru