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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sweetydady
6 / 2 / 1
Регистрация: 19.02.2012
Сообщений: 40
#1

помогите с операторами while и for - C++

03.05.2012, 19:45. Просмотров 569. Ответов 11
Метки нет (Все метки)

есть программа, и мне нужно чтоб выводило информацию о файле во время оператора while.
все работает, если оставить один if и к нему добавить else, но мне нужно чтоб несколько вариантов выводило, например : файл скрытый, и только для чтения.
C++ (Qt)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <windows.h>
#include <iostream>
 
using namespace std;
 
int main()
{
  DWORD  file_attr;
 
  // Г·ГЁГІГ*ГҐГ¬ Г*òðèáóòû ГґГ*éëГ*
  file_attr = GetFileAttributes("D:\\hello.jpg");
  if(file_attr == -1)
  {
    cerr << "Get file attributes failed." << endl
      << "The last error code: " << GetLastError() << endl;
    cout << "Press any key to finish.";
    cin.get();
    return 0;
  }  
  // ïðîâåðÿåì, ГЄГ*êîé ГЅГІГ® ГґГ*éë
while (file_attr == -1)
  {
  if(file_attr == FILE_ATTRIBUTE_NORMAL)
    cout << "This is a normal file." << endl;
   
  if(file_attr == FILE_ATTRIBUTE_HIDDEN)
    cout << "This is a hidden file." << endl;
    
  if(file_attr == FILE_ATTRIBUTE_READONLY)
    cout << "This is not a ReadOnly file." << endl;
  
  if(file_attr == FILE_ATTRIBUTE_SYSTEM)
    cout << "This is not a System file." << endl;
   
  if(file_attr == FILE_ATTRIBUTE_TEMPORARY)
    cout << "This is not a TEMPORARY file." << endl;
    
  if(file_attr == FILE_ATTRIBUTE_COMPRESSED)
    cout << "This is not a COMPRESSED file." << endl;
}
 
  system ("pause");
  
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2012, 19:45     помогите с операторами while и for
Посмотрите здесь:

Проблема с операторами - C++
начинаю работаю на VC10 ввожу #include &lt;iostream.h&gt; почеркивает и пишет, что не удается открыть источник файла.... ввожу ...

Задания с операторами - C++
Тут такая фишка оч нужна помощь 1а)Даны три различных числа. Среднее из них заменить суммой квадратов, большее ― квадратом суммы меньшего...

Запись и считывание операторами << >> - C++
Ребят, прошу помочь. Нужно создать класс с 3мя полями. Имя, фамилия и номер работника. С помощью методов нужно обеспечить запись в файл и...

Работа с битовыми операторами - C++
Здравствуйте, С Новым Годом! Решил за новогодние празники познакомиться с языком C++. Попалась на глаза книжка Стефана Р. Дэвиса &quot;С++ для...

Путаница с sftream и операторами << и >> - C++
Значит так, иду спокойно по книжке по темам &quot;Открытие и закрытие текстовых файлов&quot;, а также &quot;Чтение и запись текстовых файлов&quot; и тут я...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
03.05.2012, 20:02     помогите с операторами while и for #2
Ну а Вы сами как думаете, если переменная file_attr имеет целочисленный тип и может в один момент времени быть равна только одному значению.
sweetydady
6 / 2 / 1
Регистрация: 19.02.2012
Сообщений: 40
03.05.2012, 20:05  [ТС]     помогите с операторами while и for #3
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну а Вы сами как думаете, если переменная file_attr имеет целочисленный тип и может в один момент времени быть равна только одному значению.
Вы не подскажите что сделать, а то мозги уже кипят(
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
03.05.2012, 20:10     помогите с операторами while и for #4
Скорей всего тут возвращается значение флагов. Я еще пока не знаком с WinAPI, но могу предположить, что нужно сравнивать с помощью битовых операций. В данном случае битовой операции &. Попробуйте
C++
1
if ( file_attr & FILE_ATTRIBUTE_NORMAL )
и так с каждым условием.
sweetydady
6 / 2 / 1
Регистрация: 19.02.2012
Сообщений: 40
03.05.2012, 20:22  [ТС]     помогите с операторами while и for #5
Цитата Сообщение от Toshkarik Посмотреть сообщение
Скорей всего тут возвращается значение флагов. Я еще пока не знаком с WinAPI, но могу предположить, что нужно сравнивать с помощью битовых операций. В данном случае битовой операции &. Попробуйте
C++
1
if ( file_attr & FILE_ATTRIBUTE_NORMAL )
и так с каждым условием.
не работает
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
03.05.2012, 20:28     помогите с операторами while и for #6
Если верить msdn, то функция GetFileAttributes возвращает не целое число, но список элементов (атрибутов), потому и не срабатывает условие
C++
1
 if(file_attr == -1)
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
03.05.2012, 20:29     помогите с операторами while и for #7
С того же msdn
C++
1
2
3
DWORD WINAPI GetFileAttributes(
  __in  LPCTSTR lpFileName
);
Как мы видим функция возвращает целое число.
sweetydady
6 / 2 / 1
Регистрация: 19.02.2012
Сообщений: 40
03.05.2012, 20:33  [ТС]     помогите с операторами while и for #8
так что ж мне делать? курсак горит
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
03.05.2012, 20:35     помогите с операторами while и for #9
А что именно не работает в предложенном мной варианте? По идеи все должно работать.
sweetydady
6 / 2 / 1
Регистрация: 19.02.2012
Сообщений: 40
03.05.2012, 20:36  [ТС]     помогите с операторами while и for #10
Цитата Сообщение от Toshkarik Посмотреть сообщение
А что именно не работает в предложенном мной варианте? По идеи все должно работать.
пишет нажмите кнопку для продолжения (выхода) и все
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
03.05.2012, 20:38     помогите с операторами while и for #11
Так правильно, условия цикла что в себе содержит? Делать пока file_attr равна -1? Если с файлом все в порядке то оно и выполнятся не будет.

Добавлено через 49 секунд
Если вам нужно просто вывести все атрибуты один раз, то вообще уберите цикл.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2012, 20:42     помогите с операторами while и for
Еще ссылки по теме:

Выражение с математическими операторами - C++
Доброго времени всем!Решаю задачки по С++ и у меня возник простой вопрос вот в этом алгоритме.Я его составил сам по условию задачи. Может...

Работа с операторами условия - C++
Вводим число x. и потом программа должна поставить в порядке возрастания числа: sinx, cosx. lnx. Если при каком-либо x некоторые из...

Функция с условными операторами - C++
x^2+y^2+arctg(x), при x&gt;y (x-y)^2+arctg(x), при x&lt;y (y-x)^2+0.5, в остальных случаях

Ошибка. Матрица с перегруженными операторами - C++
Здравствуйте, Прошу помочь с ошибкой: Студия не принимает строку: m3 = m1 + m2; // Error 2 error C2110: '+' : cannot add two point...


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

Или воспользуйтесь поиском по форуму:
sweetydady
6 / 2 / 1
Регистрация: 19.02.2012
Сообщений: 40
03.05.2012, 20:42  [ТС]     помогите с операторами while и for #12
Цитата Сообщение от Toshkarik Посмотреть сообщение
Так правильно, условия цикла что в себе содержит? Делать пока file_attr равна -1? Если с файлом все в порядке то оно и выполнятся не будет.

Добавлено через 49 секунд
Если вам нужно просто вывести все атрибуты один раз, то вообще уберите цикл.
ЗАРАБОТАЛО!!! Огромнейшее спасибо!!
Yandex
Объявления
03.05.2012, 20:42     помогите с операторами while и for
Ответ Создать тему
Опции темы

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