Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Вычислить расстояние между двумя точками с заданными координатами https://www.cyberforum.ru/c-beginners/thread1267066.html
Вычислить расстояние между двумя точками с координатами x1, y1 и x2, y2. Исходные данные и результат вывести в табличной форме. Добавлено через 42 минуты люди очень нужна помощь(
C (СИ) Не считается произведение
Не считает произведение где ошибка? И если не сложно напишите вывод отсортированного массива. #include <stdio.h> #include <math.h> int main(void) { const int N = 5; double arr; ...
Cортировка Шелла / Древовидная, определить количество перестановок и присваиваний C (СИ)
Заданы 3 массива из 200 эл. 1 упорядоченный.2масссив 200,199,198 и тд. 3 рандомный( как задать массив рандомный без повторений?). Надо вычислить кол-во перестановок и присваиваний сл методами...
C (СИ) Зашифровать слово данного предложения по принципу "сдвиг на 2 символа" С клавиатуры задаётся предложение.Зашифровать слово данного предложения по принципу "сдвиг на 2 символа": a-c;b-d;c-e; и тд. Подскажите пожалуйста как делать. https://www.cyberforum.ru/c-beginners/thread1266942.html
C (СИ) Запись в файл из нескольких потоков https://www.cyberforum.ru/c-beginners/thread1266894.html
Здравствуйте! Можно ли писать в один и тот же файл из нескольких потоков без синхронизации? Была идея завести переменную флаг на событие открыт ли файл, но можно ли сделать это штатными средствами...
Составить алгебраические выражения с помощью стандартных математических функций языка C (СИ)
Помогите решить задачу, если не трудно, пожалуйста) "Для приведенных ниже вариантов необходимо составить алгебраические выражения с помощью стандартных математических функций языка С." h - {a}^{3}...
C (СИ) Реализация алгоритма base64
Я скачал реализацию алгоритма кодирования base64: static const char basis_64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int Base64encode_len(int len) { ...
C (СИ) Не выводится на экран ответ программы, приложение вместо этого закрывается #include <stdio.h> #include <stdlib.h> int main() { int age; printf("How old are you?"); scanf("%d", &age); if (age < 100) { printf("You are very young"); https://www.cyberforum.ru/c-beginners/thread1266807.html
C (СИ) Нахождение чисел делящихся на 7 в интервале https://www.cyberforum.ru/c-beginners/thread1266787.html
Добрый вечер. Сразу прошу прощения, если не правильно оформил пост и/или написал не в том разделе. Помогите, пожалуйста, написать код программы. программа - курсовая работа. Нужно очень срочно....
C (СИ) Записи, содержащие данные о студентах-спортсменов института. Найти ошибку в цикле С клавиатуры ввести последовательность записей, содержащих данные о студентах-спортсменов института: <Фамилия, имя>, <Год рождения>, <Вид спорта>, <Разряд>. Распечатать введенные данные в форме... https://www.cyberforum.ru/c-beginners/thread1266689.html
Evg
Эксперт CАвтор FAQ
21090 / 8107 / 628
Регистрация: 30.03.2009
Сообщений: 22,440
Записей в блоге: 30
24.03.2015, 15:57 0

Распространенные ошибки

24.03.2015, 15:57. Просмотров 65709. Ответов 63
Метки (Все метки)

Ответ

Проблемы под windows при работе с файлами, описанными в виде полных путей

Код типа:

C
FILE *fp;
fp = fopen ("C:\a.txt", "w");
if (fp == NULL) 
{
  printf ("Error\n");
  exit(1);
}
не работают и всегда выдают ошибку.

Проблема в том, что в символьных и строковых литералах (буква в одинарных кавычках или текст в двойных кавычках) языков Си и Си++ символ обратного слэша является управляющим символом, а потому компилятор работает с ним не как с самостоятельным символом, а как с началом последовательности символов. Наиболее частыми такими последовательностями являются "\n" (перевод строки) и "\t" (табуляция), с которыми начинающие, как правило, сталкиваются уже с первых дней. Конкретно в данном примере у символа обратного слэша точно такая же трактовка, а потому последовательность символов "\a" распозналась как один управляющий символ, в итоге это привело к тому, что путь до файла в коде программы оказался вовсе не таким, каким ожидал программист. Чтобы в символьном и строковом литерале записать символ обратного слэша, надо его продублировать, т.е. написать "\\". Таким образом наша программа должна выглядеть как

C
fp = fopen ("C:\\a.txt", "w");


Вернуться к обсуждению:
Распространенные ошибки
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2015, 15:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Самые распространенные строки
type Mytype = record name:string; surname:string; end; var Students:Mytype; ...

Вывести самые распространенные женские и мужские имена
Помогите решить задачу пожалуйста! Написать программу, которая формирует файл записей данной...

Вывести самые распространенные мужские и женские имена
Имеется массив записей о студентах, каждая из которых включает поля: фамилия, имя, отчество, пол,...

Вирус блокирует выход на сайт вк и другие распространенные сайты
я чайник поэтому если что то не загрузилось..напишите пожалуйста, и помогите... второй день вожусь...

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