在第一部分我正在讀取文件,然後我試圖寫入數據到另一個txt文件,但無法運行下面的文件...輸出錯誤如下。 ..please讓我知道......非常感激....無法寫入文件在c
Error output:
1>------ Build started: Project: DataValidation, Configuration: Debug Win32 ------
1> Validate.cpp
1>d:\dropbox\validate.cpp(56): error C2059: syntax error : 'if'
1>d:\dropbox\validate.cpp(56): error C2143: syntax error : missing ';' before '{'
1>d:\dropbox\validate.cpp(58): error C2181: illegal else without matching if
1>d:\dropbox\validate.cpp(67): error C2059: syntax error : 'while'
1>d:\dropbox\validate.cpp(71): error C2065: 'inFile' : undeclared identifier
1>d:\dropbox\validate.cpp(71): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\dropbox\validate.cpp(71): error C2365: 'fclose' : redefinition; previous definition was 'function'
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(184) : see declaration of 'fclose'
1>d:\dropbox\validate.cpp(73): error C2059: syntax error : 'return'
1>d:\dropbox\validate.cpp(74): error C2059: syntax error : '}'
1>d:\dropbox\validate.cpp(74): error C2143: syntax error : missing ';' before '}'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //for exit (1)
int main(){
FILE* inFile; //file handle or pointer
FILE* outFile;
char there_was_error = 0;
char opened_in_read = 1;
char filename[100];
char line[100]; //buffer
char test;
int src, dest, type, port;
char data[100];
printf("Enter filename: ");
scanf("%s", filename);
printf("Processing filename %s ...\n", filename);
inFile = fopen(filename, "r");
if (inFile == NULL) { //check if file handler is invalid
printf("Could not open file %s\n", filename);
exit(1); //error status code
}
//test = fscanf(inFile, "%d:%d:%d:%d:", &src, &dest, &type, &port); //read line from file
//fgets(data, 100, inFile);
do {
test = fscanf(inFile, "%d:%d:%d:%d:", &src, &dest, &type, &port);//read line from file
fgets(data, 100, inFile);
//printf("%d %d %d %d %s", src, dest, type, port, data);
outFile = fopen("data_1.txt", "rb+");
if (outFile == NULL)
{
opened_in_read = 0;
outFile = fopen("data_1.txt", "wb");
if (outFile == NULL)
there_was_error = 1;
}
if (there_was_error)
{
printf("Disc full or no permission\n");
return EXIT_FAILURE;
}
if (opened_in_read)
printf("The file is opened in read mode."
" Let's read some cached data\n");
else
printf("%d %d %d %d %s", src, dest, type, port, data);
return EXIT_SUCCESS;
}
if (src >= 1 && src <= 1024){
}
else {
}
if (dest >= 1 && dest <= 1024){
}
else {
}
} while (test != EOF);
fclose(inFile); //must always close file once done
return 0;
}
這些編譯器警告不是錯誤。 – kaylum
@kaylum編譯器警告可以通過-Werror標誌變成錯誤,我懷疑這是這種情況。由於它會強制開發更安全,更強大的軟件,所以使用-Werror標誌是很常見的。 –
@MOOTO我很清楚這一點。但是顯示的輸出並不表示 - 已經啓用了錯誤。如果是這樣,它不會說「警告」,它會說「錯誤」,然後「警告爲錯誤」。如果你仔細看看SO檔案,你會發現新程序員在看到警告時認爲構建失敗了很多問題。 – kaylum