У меня проблемы с концепцией C. Я буду впереди, это часть задания для моего класса «Специальные темы в программировании: Linux и C». Я пытаюсь сделать функции для записи определенных строк в файл (это учетная программа, а функции записывают верхние и нижние колонтитулы страниц), и я получаю сообщение об ошибке.C "аргумент имеет тип 'struct file *'"
Мой код:
#include <stdio.h>
void writeToFile(FILE dataOut, char content[])
{
fprintf(dataOut, content);
}
void main()
{
FILE *dataOut;
dataOut = fopen("testWrite.txt", "w");
writeToFile(dataOut, "Leave no bars un-foo'd.");
}
Сообщение об ошибке я получаю, когда я пытаюсь скомпилировать:
testWrite.c: In function ‘writeToFile’:
testWrite.c:5:2: error: incompatible type for argument 1 of ‘fprintf’
In file included from testWrite.c:1:0:
/usr/include/stdio.h:357:12: note: expected ‘struct FILE * __restrict__’ but
argument is of type ‘FILE’
testWrite.c: In function ‘main’:
testWrite.c:12:2: error: incompatible type for argument 1 of ‘writeToFile’
testWrite.c:3:6: note: expected ‘FILE’ but argument is of type ‘struct FILE *’
Я не уверен, как это исправить. Я попытался немного манипулировать указателями, но это не изменило сообщение об ошибке. Этот код является изолированным примером того, что я хочу, чтобы мой код выполнял; если вы хотите увидеть фактический код, дайте мне знать. Это просто казалось более ясным способом выразить то, с чем я имел дело.
Кажется, что вы прыгаете с пистолетом и делаете в нем очень простые ошибки; Попробуйте изучить типы объектов, прежде чем вы узнаете о функциях. – Sebivor
Если бы я сам изучал это, я бы взял его медленно и учился более основательно; Тем не менее, я нахожусь на пределе, и поэтому иногда мне просто нужен ответ на вопрос, не читая главу учебника (или интернет-эквивалент). И, как я уже сказал в другом комментарии, я был уверен, что попробовал правильное решение, прежде чем задал вопрос. У меня есть приличная ручка для типов объектов, но я предположил, что для этого есть что-то большее, чем просто указатели, поэтому я спросил. – Chance