Ввод данных в файл.c с использованием pyqt
Я создал программу переменного тока, которая требует ввода (через scanf). Затем я создал файл.so и вызвал его в скрипте Python, чтобы при запуске скрипта вход запрашивался в терминале. Но когда я запускаю программу на python, терминал зависает.
Пожалуйста, обратите внимание:
1. Мой код c
#include <stdio.h>
#include <string.h>
int open(void)
{
char input[20];
scanf("input = %s\n",&input);
printf("\n%s\n","input");
}
2. Команда, которую я использовал для компиляции кода
gcc -c usb_comm.c
3. Создание.so файла
gcc -shared -o libhello.so usb_comm.o
4. Соответствующий раздел программы Python
Загрузка файла.so
from ctypes import cdll
mydll = cdll.LoadLibrary('/home/vineeshvs/Dropbox/wel/workspace/Atmel/libhello.so')
Вызов функции, определенной в программе c
mydll.scanf("%c",mydll.open())
Спасибо за внимание:)
1 ответ
Решение
mydll.open()
позвоните в scanf. Почему вы вызываете scanf на Python?
Просто позвони mydll.open()
только:
mydll.open()
ОБНОВИТЬ
#include <stdio.h>
void open(void)
{
char input[20];
printf("input = "); // If you want prompt
scanf("%s", input);
printf("\n%s\n", input);
}