Member 13484372 Ответов: 1

Как проверить конец удаления файла в visual C++


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

Что я уже пробовал:

// KillUser.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "malloc.h"
#include <string.h>
#include <process.h>
#include <stdio.h>

int main()
{
	FILE *p;
	char user[20];
	char cmd1[100], cmd2[100];
	//int errorCode;

	/*clrscr();*/

		strcpy_s(cmd1, "TASKKILL /F /FI \"USERNAME eq ");
		strcpy_s(cmd2, " /IM ntbshell.exe");

		/*char cmd1[] = "TASKKILL /F /FI \"USERNAME eq ";
		char cmd2[] = " /IM ntbshell.exe";*/

		/*printf("%s",cmd2);
		getch();*/
		
		errno_t errorCode = fopen_s(&p,"c:\\ERPLN\\TaskControl\\InforControlUser.txt", "r");
		
		while (!feof(p))
		{
			fscanf_s(p, "%s", &user);
			//printf("%s",user);

			strcat_s(user, "\"");

			strcat_s(cmd1, user);
			strcat_s(cmd1, cmd2);
			printf("%s\n", cmd1);
			//system(cmd1);
			//getch();

			strcpy_s(cmd1, "TASKKILL /F /FI \"USERNAME eq ");
			strcpy_s(cmd2, " /IM ntbshell.exe");

			/*char cmd1[] = "TASKKILL /F /FI \"USERNAME eq ";
			char cmd2[] = " /IM ntbshell.exe";*/
		}
		fclose(p);
		/*system("TASKKILL /F /IM notepad.exe");*/
		return 0;
	}

Richard MacCutchan

Какая ошибка времени выполнения и где она возникает? Кроме того, почему бы вам не проверить возвращаемое значение из fopen_s?

1 Ответов

Рейтинг:
0

Richard MacCutchan

fscanf_s(p, "%s", &user);

Вы не должны использовать оператор addressof (&) на имя массива user Так и должно быть . :
fscanf_s(p, "%s", user); // no leading &