Ввод данных в файл.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);
}
Другие вопросы по тегам